US20110002330A1 - Systems and methods of deciding how to route calls over a voice over internet protocol telephone call routing system - Google Patents
Systems and methods of deciding how to route calls over a voice over internet protocol telephone call routing system Download PDFInfo
- Publication number
- US20110002330A1 US20110002330A1 US12/883,647 US88364710A US2011002330A1 US 20110002330 A1 US20110002330 A1 US 20110002330A1 US 88364710 A US88364710 A US 88364710A US 2011002330 A1 US2011002330 A1 US 2011002330A1
- Authority
- US
- United States
- Prior art keywords
- call
- information
- routing
- route
- service provider
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
- H04L12/2869—Operational details of access network equipments
- H04L12/287—Remote access server, e.g. BRAS
- H04L12/2874—Processing of data for distribution to the subscribers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/247—Multipath using M:N active or standby paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/26—Route discovery packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
- H04L45/3065—Route determination based on the nature of the carried application for real time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1023—Media gateways
- H04L65/103—Media gateways in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1033—Signalling gateways
- H04L65/104—Signalling gateways in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1106—Call signalling protocols; H.323 and related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/401—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
- H04L65/4038—Arrangements for multi-party communication, e.g. for conferences with floor control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/12—Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal
- H04M7/1205—Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal where the types of switching equipement comprises PSTN/ISDN equipment and switching equipment of networks other than PSTN/ISDN, e.g. Internet Protocol networks
- H04M7/1285—Details of finding and selecting a gateway for a particular call
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/009—Arrangements for interconnection between switching centres in systems involving PBX or KTS networks
Definitions
- the invention relates generally to the field of communications, and more specifically to a network configured for Voice over. Internet Protocol (VoIP) and/or Facsimile over Internet Protocol (FoIP).
- VoIP Voice over. Internet Protocol
- FoIP Facsimile over Internet Protocol
- VoIP Voice over Internet Protocol
- IP Internet Protocol
- VoIP may also be advantageous where it is beneficial to carry related voice and data communications over the same channel, to bypass tolls associated with the PSTN, to interface communications originating with Plain Old Telephone Service (POTS) with applications on the Internet, or for other reasons.
- POTS Plain Old Telephone Service
- FIG. 1 is a schematic diagram of a representative architecture in the related art for VoIP communications between originating telephone 100 and destination telephone 145 .
- Hardware and software components for the features shown in FIG. 1 are well-known.
- controllers 120 and 160 may be Cisco PGW 2200 nodes, and gateways 125 and 135 may be Cisco AS5300 voice gateways.
- a user To initiate a VoIP session, a user lifts a handset from the hook of originating telephone 100 . A dial tone is returned to the originating telephone 100 via Private Branch Exchange (PBX) 110 . The user dials a telephone number, which causes the PSTN 113 to switch the call to the originating gateway 125 , and additionally communicates a destination for the call to the originating gateway 125 . The gateway will determine which destination gateway a call should be sent to using a look-up table resident within the gateway 125 , or it may consult the controller 120 for this information.
- PBX Private Branch Exchange
- the gateway attempts to establish a call with the destination telephone 145 via the VoIP network 130 , the destination gateway 135 , signaling lines 155 and the PSTN 140 . If the destination gateway and PSTN are capable of completing the call, the destination telephone 145 will ring. When a user at the destination telephone 145 lifts a handset and says “hello?” a first analog voice signal is transferred through the PSTN 140 to the destination gateway 135 via lines 155 . The destination gateway 135 converts the first analog voice signal originating at the destination telephone 145 into packetized digital data (not shown) and appends a destination header to each data packet. The digital data packets may take different routes through the VoIP network 130 before arriving at the originating gateway 125 .
- the originating gateway 125 assembles the packets in the correct order, converts the digital data to a second analog voice signal (which should be a “hello?” substantially similar to the first analog signal), and forwards the second analog voice signal to the originating telephone 100 via lines 155 , PSTN 115 and PBX 110 .
- a user at the originating telephone 100 can speak to a user at the destination telephone 145 in a similar manner.
- the call is terminated when the handset of either the originating telephone 100 or destination telephone 145 is placed on the hook of the respective telephone. In the operational example described above, the telephone 105 is not used.
- the controllers 120 and 160 may provide signaling control in the PSTN and a limited means of controlling a gateway at one end of the call. It will be appreciated by those skilled in the art that, in some configurations, all or part of the function of the controllers 120 and 160 as described above may be embedded into the gateways 125 and 135 , respectively.
- the billing system must be capable of providing lists that identify, for each call, the calling party, the called party, the duration of the call, and the time of day the call was placed.
- the call information is then combined with rate information to determine how much should be charged for each call, and how much the system should pay to other service providers for completing calls to called parties
- Prior art systems typically track information about each call to support the billing process. The tracked information is then complied at the end of each week or each day to determine who owes what for each call. This batch processing is time/resource consuming, and necessarily involves a delay between the time that calls are completed, and the time that bills are generated and sent. Also, because the call information is batch processed at the end of each week/day, there will be a delay before users even know what they owe for placed calls.
- An object of the invention is to solve at least one or more of the above problems and/or disadvantages in whole or in part and to provide at least the advantages described hereinafter.
- An improved control architecture for VoIP/FoIP communications system that embodies the invention processes call information shortly after each call is completed to determine the charges associated with the call. This eliminates the need to perform batch processing at the end of the day/week. This also means that the charges associated with a call will be known shortly after the call is completed.
- the system controllers can determine when portions of the system are approaching maximum capacity. This allows for better load balancing.
- the system may be capable of determining when system assets are experiencing problems by monitoring the status of calls. This information can then be used to take corrective action.
- the call information tracked by the system might also be used to make better routing decisions. For instance, if the system notices that a large percentage of call setup requests for calls placed to a certain area are not resulting in a connected call, the system can look for trouble with the assets at that location.
- FIG. 1 is a schematic diagram of a system architecture providing VoIP communications, according to the background;
- FIG. 2 is a schematic diagram of a system architecture providing VoIP/FoIP communications, according to a preferred embodiment of the invention
- FIG. 3 is a schematic diagram of a system architecture providing improved control for VoIP communications, according to a preferred embodiment of the invention.
- FIG. 4 is a flow diagram illustrating a method for routing control, according to a preferred embodiment of the invention.
- FIG. 5 is a flow diagram illustrating a method for maintaining a call state, according to a preferred embodiment of the invention.
- FIG. 6 is a sequence diagram illustrating a method for communicating between functional nodes of a VoIP network, according to a preferred embodiment of the invention.
- FIG. 7 is a flow diagram of a method embodying the invention.
- FIG. 8 is a flow diagram of another method embodying the invention.
- FIG. 9 is a flow diagram of yet another method embodying the invention.
- FIG. 10 is a block diagram of a system for monitoring the status of calls placed on a system, and for compiling information about the calls immediately after the calls are terminated.
- FIG. 2 A system embodying the invention is depicted in FIG. 2 .
- the system includes telephones 100 / 105 connected to a private branch exchange (PBX) 110 .
- PBX private branch exchange
- the PBX is connected to the PSTN 115 .
- telephones 102 may be coupled to a local carrier 114 , which in turn routes long distance calls to one or more long distance service providers 117 .
- PBX private branch exchange
- telephones 102 may be coupled to a local carrier 114 , which in turn routes long distance calls to one or more long distance service providers 117 .
- Those skilled in the art will recognize that calls could also originate from cellular telephones, computer based telephones, and/or other sources, and that those calls could also be routed through various carriers and service providers. Regardless of where the calls are originating from, they are ultimately forwarded to an originating gateway 125 / 126 .
- the originating gateways 125 / 126 function to convert an analog call into digital packets, which are then sent via the Internet 130 to a destination gateway 135 / 136 .
- the gateways may receive a call that has already been converted into a digital data packet format. In this case, the gateways will function to communicate the received data packets to the proper destination gateways. However, the gateways may modify the received data packets to include certain routing and other formatting information before sending the packets on to the destination gateways.
- the gateways 125 / 126 / 135 / 136 are coupled to one or more gatekeepers 205 / 206 .
- the gatekeepers 205 / 206 are coupled to a routing controller 200 . Routing information used to inform the gateways about where packets should be sent originates at the routing controller.
- routing controller 200 may be actively used by gatekeepers and gateways to provide routing information, while another redundant routing controller may be kept active, but unused, so that the redundant routing controller can step in should the primary routing controller experience a failure.
- the primary and redundant routing controllers may be located at different physical locations so that local conditions affecting the primary controller are not likely to also result in failure of the redundant routing controller.
- the digital computer network 130 used to communicate digital data packets between gateways may be compliant with the H.323 recommendation from the International Telecommunications Union (ITU).
- ITU International Telecommunications Union
- Use of H.323 may be advantageous for reasons of interoperability between sending and receiving points, because compliance with H.323 is not necessarily tied to any particular network, platform, or application, because H.323 allows for management of bandwidth, and for other reasons.
- the ITU H.225 protocol may be used for communication and signaling between the gateways 125 / 126 and 135 / 136
- the IETF RIP protocol may be used for audio data between the gateways 125 / 126 and 135 / 136
- RAS Registration, Admission, and Status
- the gatekeeper 205 may perform admission control, address translation, call signaling, call management, or other functions to enable the communication of voice and facsimile traffic over the PSTN networks 115 / 140 and the VoIP network 130 .
- the ability to provide signaling for networks using Signaling System No. 7 (SS7) and other signaling types may be advantageous over network schemes that rely on gateways with significantly less capability.
- SS7 Signaling System No. 7
- related art gateways not linked to the gatekeepers of the present invention may only provide signaling for Multi-Frequency (MF), Integrated Services Digital Network (ISDN), or Dual Tone Multi-Frequency (DTMF).
- MF Multi-Frequency
- ISDN Integrated Services Digital Network
- DTMF Dual Tone Multi-Frequency
- the gatekeeper 205 may further provide an interface between different gateways, and the routing controller 200 .
- the gatekeeper 205 may transmit routing requests to the routing controller 200 , receive an optimized route from the routing controller 200 , and execute the route accordingly.
- gatekeepers may also communicate with other gatekeepers to manage calls outside of the originating gatekeepers area of control. Additionally, it may be advantageous to have multiple gatekeepers linking a particular gateway with a particular routing controller so that the gatekeepers may be used as alternates, allowing calls to continue to be placed to all avail-able gateways in the event of failure of a single gatekeeper. Moreover, although the gatekeeping function may be logically separated from the gateway function, embodiments where the gatekeeping and gateway functions are combined onto a common physical host are also within the scope of the invention.
- a routing controller 200 is logically coupled to gateways 125 / 126 and 135 / 136 through gatekeepers 205 / 206 .
- the routing controller 200 contains features not included in the prior art signaling controllers 120 and 160 of the prior art systems described above, as will be described below.
- Routing controller 200 and gatekeepers 205 / 206 may be hosted on one or more network-based servers which may be or include, for instance, a workstation running the Microsoft WindowsTM NTTM, WindowsTM2000, Unix, Linux, Xenix, IBM AIXTM, Hewlett-Packard UXTM, Novell NetwareTM, Sin Microsystems SolarisTM, OS/2TM, BeOSTM, Mach, Apache, OpenStepTM, Java Virtual Machine or other operating system or platform.
- a workstation running the Microsoft WindowsTM NTTM, WindowsTM2000, Unix, Linux, Xenix, IBM AIXTM, Hewlett-Packard UXTM, Novell NetwareTM, Sin Microsystems SolarisTM, OS/2TM, BeOSTM, Mach, Apache, OpenStepTM, Java Virtual Machine or other operating system or platform.
- Detailed descriptions of the functional portions of a typical routing controller embodying the invention is provided below.
- a routing controller 200 may include a routing engine 305 , a Call Detail Record (CDR) engine 325 , a traffic database 330 , a traffic analysis engine 335 , a provisioning engine 340 , and a provisioning database 345 .
- the routing engine 305 , CDR engine 325 , traffic analysis engine 335 , and provisioning engine 340 may exist as independent processes and may communicate to each other through standard interprocess communication mechanisms. They might also exist on independent hosts and communicate via standard network communications mechanisms.
- the routing engine 305 may be duplicated to provide redundancy.
- CDR Call Detail Record
- traffic database 330 may function in a master-slave relationship to manage the generation of billing data.
- provisioning engine 340 may function in a master-slave relationship to manage the generation of billing data.
- the routing engine 305 may include a communications layer 310 to facilitate an interface between the routing engine 305 and the gatekeepers 205 / 206 .
- the routing engine 305 may determine the best routes for VoIP traffic based upon one or more predetermined attributes such as the selected carrier service provider, time of day, a desired Quality of Service (QoS), cost, or other factors.
- the routing information generated by the routing engine 305 could include a destination gateway address, and/or a preferred Internet Service Provider to use to place the call traffic into the Internet.
- the rule engine 315 may apply one or more exclusionary rules to candidate routes, based upon known bad routes, provisioning data from provisioning database 345 , or other data.
- the routing engine 305 may receive more than one request to route a single call. For example, when a first routing attempt was declined by the terminating gateway, or otherwise failed to result in a connection, or where a previous routing attempt resulted in a disconnect other than a hang-up by the originator or recipient, then the routing engine may receive a second request to route the same call. To provide redundancy, the routing engine 305 may generate alternative routes to a particular far-end destination. In a preferred embodiment of the invention, when the routing engine receives a routing request, the routing engine will return both preferred routing information, and alternative routing information. In this instance, information for at least one next-best route will be immediately available in the event of failure of the preferred route.
- routing engine 305 may determine a next-best route only after the preferred route has failed.
- An advantage of the latter approach is that routing engine 305 may be able to better determine the next-best route with the benefit of information concerning the most recent failure of the preferred route.
- routing engine 305 may maintain the state of each VoIP call in a call state library 320 .
- routing engine 305 may store the state of a call as “set up,” “connected,” “disconnected,” or some other state.
- Routing engine 305 may further format information about a VoIP call such as the originator, recipient, date, time, duration, incoming trunk group, outgoing trunk group, call states, or other information, into a Call Detail Record (CDR). Including the incoming and outgoing trunk group information in a CDR may be advantageous for billing purposes over merely including IP addresses, since IP addresses may change or be hidden, making it difficult to identify owners of far-end network resources.
- Routing engine 305 may store CDR's in a call state library 320 , and may send CDR's to the CDR engine 325 in real time, at the termination of a call, or at other times.
- the CDR engine 325 may store CDR's to a traffic database 330 . To facilitate storage, the CDR engine 325 may format CDR's as flat files, although other formats may also be used. The CDR's stored in the traffic database 330 may be used to generate bills for network services. The CDR engine 325 may also send CDR's to the traffic analysis engine 335 .
- Data necessary for the billing of network services may also be stored in a Remo t e Authentication Dial-In User Service (RADIUS) server 370 .
- the data stored in the RADIUS server may be the primary source of billing information.
- the RADIUS server 370 may also directly communicate with a gateway 125 to receive and store data such as incoming trunk group, call duration, and IP addresses of near-end and far-end destinations.
- the CDR adapter 375 may read data from both the traffic database 330 and the RADIUS server 370 to create a final CDR.
- the merged data supports customer billing, advantageously including information which may not be available from RADIUS server 370 alone, or the traffic database 330 alone.
- the traffic analysis engine 335 may collect CDR's, and may automatically perform traffic analysis in real time, near real time, or after a predetermined delay. In addition, traffic analysis engine 335 may be used to perform post-traffic analysis upon user inquiry. Automatic or user-prompted analysis may be performed with reference to a predetermined time period, a specified outgoing trunk group, calls that exceed a specified duration, or according to any other variable (s) included in the CDR's.
- the provisioning engine 340 may perform tasks necessary to route particular calls over the Internet. For example, the provisioning engine 340 may establish or modify client account information, authorize a long distance call, verify credit, assign phone numbers where the destination resides on a PSTN network, identify available carrier trunk groups, generate routing tables, or perform other tasks. In one embodiment of the invention, provisioning may be performed automatically. In another embodiment, provisioning may be performed with user input. Hybrid provisioning, that is, a combination of automated and manual provisioning, may also be performed. The provisioning engine 340 may further cause provisioning data to be stored in a provisioning database 345 .
- Client workstations 350 and 360 may be coupled to routing controller 200 to provide a user interface. As depicted in FIG. 3 , the clients) 350 may interface to the traffic analysis engine 335 to allow a user to monitor network traffic. The client(s) may interface to the provisioning engine 340 to allow a user to view or edit provisioning parameters. In alternative embodiments, a client may be adapted to interface to both the traffic analysis engine 335 and provisioning engine 340 , or to interface with other features of routing controller 200 .
- the gateways 125 / 126 would first receive a request to set up a telephone call from the PSTN, or from a Long Distance Provider 117 , or from some other source.
- the request for setting up the telephone call would typically include the destination telephone number.
- the gateway would consult the gatekeeper 205 .
- the gatekeeper 205 may consult the routing controller 200 to determine the most appropriate destination gateway. In some situations, the gatekeeper may already have the relevant routing information. In any event, the gatekeeper would forward the routing information to the originating gateway 125 / 126 , and the originating gateway would then send the appropriate packets to the appropriate destination gateway.
- the routing information provided by the gatekeeper may include just a preferred destination gateway, or it may include both the preferred destination gateway information, and information on one or more next-best destination gateways.
- the routing information may also include a preferred route or path onto the Internet, and one or more next-best routes.
- the routing information may further include information about a preferred Internet Service Provider.
- FIG. 4 is a flow chart illustrating a method embodying the invention for using the routing controller 200 .
- the routing controller 200 receives a routing request from either a gatekeeper, or a gateway.
- a decision is made as to whether provisioning data is available to route the call. If the provisioning data is not available, the process advances to step 410 to provision the route, then to step 415 for storing the provisioning data before returning to decision step 405 .
- step 420 may result in the generation of information for both a preferred route, and one or more alternative routes.
- the alternative routes may further be ranked from best to worst.
- the routing information for a call could be simply information identifying the destination gateway to which a call should be routed.
- the routing information could include information identifying the best Internet Service Provider to use to place the call traffic onto the Internet.
- the routing controller may know that attempting to send data packets directly from the originating gateway to the destination gateway is likely to result in a failed call, or poor call quality due to existing conditions on the Internet.
- the routing information may include information that allows the data packets to first be routed from the originating gateway to one or more interim gateways, and then from the interim gateways to the ultimate destination gateway. The interim gateways would simply receive the data packets and immediately forward the data packets on to the ultimate destination gateway.
- Step 420 may also include updating the call state library, for example with a call state of “set up” once the route has been generated.
- a CDR may be generated in step 425 .
- the CDR is a record that is created in a database, in which call information will be stored. Each CDR will reflect information about a particular call, or call attempt.
- the CDR may be stored in step 430 and sent to the traffic analysis engine in step 435 .
- steps 430 and 435 may be performed in parallel, as shown in FIG. 4 .
- steps 430 and 435 may be performed sequentially.
- only step 430 or only 435 may be performed.
- FIG. 5 is a flow diagram illustrating a method for maintaining a call state, which may be performed by routing engine 305 .
- This call state information may be stored in the CDR, or call state information can be stored in a separate location.
- the process may determine in step 505 whether a route request has been received from a gatekeeper or other source. If a routing request has not been received, the process may advance to a delay step 510 before returning to decision step 505 . If, however, it is determined in step 505 that a route request has been received, then a call state may be set to “set up” in step 515 .
- the process of FIG. 5 may then determine in step 520 whether a connect message has been received from a gatekeeper or other source. If a connect message has not been received, the process may advance to delay step 525 before returning to decision step 520 .
- a call state may be set to “connected” in step 530 .
- the process of FIG. 5 may then determine in step 535 whether a disconnect message has been received from a gate keeper or other source. If a disconnect message has not been received, the process may advance to delay step 540 before returning to decision step 535 . If, however, it is determined in step 535 that a disconnect message has been received, then a call state may be set to “disconnected” in step 545 before the process ends in step 550 .
- the process depicted in FIG. 5 will operate to keep the call state for all existing calls up to date to within predetermined delay limits.
- the call state monitoring process can monitor for other call states such as “hang-up,” “busy,” or other call states not indicated above.
- monitoring for other call states may be instead of or in addition to, those discussed above.
- monitoring could be performed in parallel, instead of the serial method illustrated in FIG. 5 .
- the call state for each call may be associated with recorded times. For instance, for a particular call, the call state of setup may be associated with time T 1 , the call state connected may be associated with time T 2 , and the call state disconnected may be associated with time T 3 . This would allow the system to determine that the duration of the call setup was T 2 -T 1 . Similarly, the duration of the call would be calculated as T 3 -T 2 .
- FIG. 6 discloses a sequence of messages between an originating gateway, a routing engine, a call state library, and a destination gateway, according to a preferred embodiment of the invention.
- the originating gateway may send a first request for routing information, in the form of a first Admission Request (ARQ) message, to a touting engine within a routing controller.
- ARQ Admission Request
- the request would probably be passed on through a gatekeeper logically positioned between the gateway and the routing engine in the routing controller.
- the routing engine may store a set-up state in call state library. The routing engine may then determine a best route based upon one or more predetermined attributes such as the selected carrier service provider, a desired Quality of Service (QoS), cost, or other factors. The routing engine may then send information pertaining to the best route to the originating gateway, possibly via a gatekeeper, as a first ARQ response message. The gateway would then initiate a first call to a destination gateway using the information contained within the response message. As shown in FIG. 6 , the destination gateway may return a decline message to the originating gateway.
- QoS Quality of Service
- the gateway may send a second request for routing information, in the form of a second ARQ message, to routing engine.
- Routing engine may recognize the call as being in a set up state, and may determine a next best route for completion of the call. Routing engine may then send a second ARQ response message to the originating gateway.
- the originating gateway may then send a second call message to the same or a newly selected destination gateway using the next best route.
- the destination gateway may return a connect message to the originating gateway.
- the routing engine may use a conference ID feature of the H.323 protocol, which is unique to every call, in order to keep track of successive routing attempts.
- routing engine may respond with a best route; upon receiving a second ARQ associated with the same call, routing engine may respond with the second best route. If the second call over the next best route does not result in a connection, the originating gateway may send a third ARQ message to routing engine, and so on, until an ARQ response message from routing engine enables a call to be established between the originating gateway and a destination gateway capable of completing the call to the called party.
- the initial ARQ response from the routing engine to the originating gateway may include information about the best route, and one or more next-best routes.
- the originating gateway can simply attempt to route the call using the next-best route without the need to send additional queries to the routing engine.
- the originating gateway may send an Information Request Response (IRR) message to the routing engine to indicate the connect.
- IRR Information Request Response
- the routing engine may store a connected state message to the call state library.
- a call may become disconnected.
- a disconnect may occur because a party has hung up, because of a failure of a network resource, or for other reasons.
- destination gateway may send a disconnect message to the originating gateway.
- originating gateway may send a Disengage Request (DRQ) message to the routing engine.
- DRQ Disengage Request
- the routing engine may then update the call state by storing a disconnected state status in the call state library.
- Information relating to each telephone call routed over the Internet may be obtained and stored as described above. In traditional systems, the information is then later compiled with rate information to generate billing data. This billing data can then be used to bill the clients that placed calls through the system. The information can also be used to verify charges submitted by third parties that were used to complete the calls.
- a CDR for a particular call would indicate information about the party that requested that the call be made, information about the called party, and possibly the carrier used to complete the call. If this information is not directly stored in the CDR, the CDR would at least include information from which these things could be determined.
- the system will have pre-negotiated rates for placing calls for the party making the call request. Similarly, the system will have pre-negotiated rates with third party carriers for completing calls from the Internet to the ultimate called parties. Once the system knows where the call came from, where the call went to, and how long the call lasted, the system can determine: (1) how much to charge the calling party, and (2) how much it will have to pay to a third party for completing the call.
- the call information contained in the CDRs is compiled with the rate information as part of a batch processing method that occurs only periodically.
- the system would perform this batch processing for all calls that occurred during a 24 hour period at a point in time when excess processing capacity exists. For instance, if system processing assets are available between midnight and 5 am, the batch processing could be performed at this time to effectively utilize the excess processing capacity that exists at this point in the day.
- the result of the batch processing would be billing information that can be submitted to the clients who use the system to place calls. Depending on the client, this information could be presented in many different ways. Another result would be estimates of what third party carriers will charge for calls that were completed to called parties.
- the inventors have devised a way of processing call information almost immediately after a call is completed, or immediately after a call is re-routed. This allows billing information to become available almost immediately after a call is completed or re-routed. It also avoids problems with batch processing consuming extremely large amounts of processing capacity during certain times of the day since the call processing is spread out over the day.
- the system can use the information to make better routing decisions and to help identify problems on the network.
- FIG. 7 shows a flow diagram of an exemplary method embodying the invention for recording and compiling information relating to a telephone call routed over the Internet.
- the end result of the process is the creation of a final call detail record (CDR) for a call.
- CDR call detail record
- a preliminary or initial CDR will be created each time a call request is received from a customer. That the CDR will be updated as the call processing proceeds. Once the call is completed, or re-routed, a final CDR would be created and stored.
- the initial CDR When a call setup request is received, the initial CDR would be created. At this point in time, the CDR could include information about the destination telephone number, and the individual/carrier who is making the call request. The CDR might also indicate the telephone number of the calling party. The system would then attempt to place the call. This would involve attempting to complete the call through a destination service provider. As mentioned above, it may require several call setup attempts before the call can be completed to the called party. Each call setup attempt would be recorded and that information would become part of the CDR. Any re-routes that occur would also become part of the recorded information. The amount of time required to complete the call to the called party might also be recorded. If the call cannot be completed, this information would also become part of the CDR, along with the reason that the call could not be completed.
- the routing to be used for the call is certain, and the CDR could be updated to include an indication of the destination carrier that has completed the call to the called party.
- the CDR would then be updated as the call progresses to indicate the duration of the call, as this information should be available from the gateway.
- the final total duration will be known and recorded. Alternatively, the beginning and end times of the call might be recorded, which would allow the duration to be calculated at a later time. Also, if the call is terminated without either the calling patty the called party hanging up, which probably indicates a problem, this information could also be recorded.
- the outgoing and incoming trunk group might be recorded.
- the actual originating and destination gateways used to route the call might be recorded. If the call is deliberately routed through interim gateways, the identity of the interim gateway(s) might also be recorded.
- the Internet Service Provider used to place the call data onto the Internet might be recorded. An indication of how the call was terminated might be recorded.
- many other items of date could also be recorded in the CDR.
- step S 700 A general method embodying the invention is shown in FIG. 7 .
- the operation begins in step S 700 and proceeds to step S 702 where call information relating to a telephone call, is obtained.
- This obtaining step could involve each of the operations described above where information about the call is recorded into the initial CDR, and where that information is updated as the call processing is continued. Much of this information will be available from the core system assets.
- the system might also consult additional sources of information about a particular call. For instance, the system might also consult a RADIUS server to obtain information about a particular call.
- the use of a unique call identification number could allow the system to match up information from an initial CDR with information stored in locations such as a RADIUS server.
- Some kinds of information may be available from more than a single source.
- the call duration is typically recorded by both the Routing Engine, and the RADIUS server.
- the call duration information recorded in the RADIUS server is almost always more accurate than the call.
- duration information stored in the Routing Engine For this reason, when information is available from more than one source, the system will have pre-determined preferences as to which source is used for the final version of the CDR. The system will always use the more accurate source, unless the information is missing or corrupted in the more accurate source. In that instance, the system would use the information from the less accurate source.
- step S 704 all or a selection of the obtained call information may be compiled to create a final CDR for a call.
- This compilation process will determine various things about the call.
- One of the primary purposes of the compiling step is to determine billing information. In this instance, rate information would be combined with the call information to determine who should be charged for the call, and how much they should be charged. This step could also involve determining how much the system will have to pay to a destination carrier to complete the call to the called party.
- the system will pull information available from multiple sources and decide which information to record in the final CDR. As mentioned above, this might involve selecting information from the more reliable source. This might also involve comparing the information available from two or more sources in order to determine what to record.
- Step S 706 the system will record the final CDR in a CDR database. All or portions of the CDR might also be recorded in other locations. For instance, call billing information could be output to a billing management system. In the case of call cost information, the information could be output to a costs management system. If the compiled information relates to identified problems, the compiled information might be sent to a traffic or system monitoring system.
- the information output in step S 706 could also be used to identify trouble spots in the system. For instance, if many calls being routed to a particular destination gateway are being terminated for technical reasons, and not because the caller or called party terminates the call, this could indicate a problem with that destination gateway. System personnel could then initiate diagnostics or a physical check to see if there is a problem. Because this information is being output in real-time, or at least quickly after the problem has been noted (near-real-time), rather than after batch processing at the end of the day, trouble spots can be identified much more quickly than with the old batch processing system.
- a traffic monitoring and analysis system could receive information about each of the calls handled by the system so that traffic trends can be spotted. For instance, the system could note when traffic to a particular destination is increasing to alert system personnel that additional capacity may become necessary in the future. Similarly, if the monitoring and analysis system notes that traffic is decreasing to a particular location, system personnel could be alerted to purchase less assets in that area.
- the CDRs are being completed immediately after the calls are completed, or immediately after a call is re-routed, the information within the CDRs can be used to quickly react to changing traffic conditions.
- Step S 706 if the call information output in Step S 706 indicates that many calls placed through a particular Internet Service provider are experiencing call quality problems, the system can decide to route calls through a different Internet Service Provider. Again, because the information is complied and output immediately after the calls are completed or re-routed, trouble spots can be quickly identified and corrected.
- FIG. 8 depicts a flow diagram that represents a method of compiling financial call information that embodies the invention. This method generally corresponds to step S 704 in the method shown in FIG. 7 .
- the method begins at step S 800 , and proceeds to step S 802 where rate information for the party or service provider requesting the call is obtained.
- the requesting party (who will ultimately be billed) would be an individual.
- the requesting party could be a service provider who routes long distance calls through the system, and who acts as a middleman between the system and an individual. Regardless of who will be billed, the system would almost always have a set of pre-negotiated rates that will apply for the requesting party. These rates might vary depending on the time of day and the intended destination of the call. In addition, one rate might apply for a first number of calling minutes, and a second rate might apply for additional calling minutes. In fact, all sorts of different rate variables might be involved. But regardless of the rate details, the system should be able to obtain the rate for the requesting party.
- step S 804 the system would obtain rate information for the party that will complete the call to the called party.
- This would typically be a local or national telephone service provider in the location of the called party. In some instance, this could include more than one party. For instance, one party at the destination location might be responsible for pulling the data traffic off the Internet, while another party is responsible for completing the call to the called party.
- the rate information for the party completing the call would also typically be pre-negotiated. It would usually be dependent on the location of the called party, with different rates being used for different cities or locations. The rates might vary depending on the time of day. In addition, a first rate might apply for the first number of minutes placed through the destination carrier, and a second rate might apply for additional minutes placed through the destination carrier. In that case, the system would have to know how many minutes of calling time has already been placed though the destination carrier before the system would know which rate to use. Thus, the step of selecting the appropriate rate might require that the system obtain information from a variety of sources that have nothing to do with the actual call itself.
- step S 806 the system would then use the information about a particular call reflected in the CDR for the call, and the rate information obtained in steps S 802 and S 804 to calculate call costs and/or call revenue. This would include the costs to be charged to the party requesting the call, the costs that will likely be charged by the destination carrier completing the call, and possibly the revenue to be derived from calls. In some embodiments of the invention, only the charges for the party requesting the call might be calculated. In that instance, step S 804 would be unnecessary.
- FIG. 9 also depicts a method embodying the invention.
- the system. uses the information gathered during a. call to identify potential problems with the system. This method could also correspond to step S 704 of the method shown in FIG. 7 .
- the method shown in FIG. 9 could be performed after the method shown in FIG. 7 has been completed, and after the final CDR for one or more calls have been recorded in the CDR database.
- step S 900 begins at step S 900 , and proceeds to step S 902 where the system determines why a call was terminated. In particular, the system is looking to determine if a call was terminated by the failure of a system asset, rather than because the calling party or the called party hung up the phone. If the system determines that the call was terminated because of the failure of a system asset, then in step S 904 the system attempts to determine what particular assets could have caused the call termination. For instance, the call may have been improperly terminated because of a problem with the originating, interim or terminating gateways. Alternatively, the call may have experienced a problem because of an Internet Service provider problem, or because of a problem with the originating or terminating service provider. If possible, the system will attempt to pinpoint the exact cause of the problem. This information may be recorded in a CDR, or the information may be derived from the information recorded in a CDR.
- the system might be able to examine multiple CDRs to spot trends. For instance, if the system notes that a CDR for a particular indicates that the call was prematurely terminated, the system could then look for other CDRs for calls placed through the same terminating gateway. If the CDRs indicate that multiple calls through the same terminating gateway have been prematurely terminated, the system could conclude that there is a problem with the terminating gateway.
- the system might look at multiple CDRs for calls placed through the same destination service provider, for calls using the same Internet Service Provider, or for multiple calls requested by the same requesting party. If this information indicates a common thread for multiple premature call terminations, the system may be able to pinpoint the likely problem. Of course, many other types of information in the CDRs could be analyzed to locate potential problems.
- step S 906 a trouble report would be issued.
- a trouble report indicates that a particular asset is causing call terminations
- system personnel could initiate corrective action.
- System personnel could also use the information contained in trouble reports to spot trends. For instance, the trouble reports might indicate that calls placed through a particular destination service provider tend to fail between certain hours of the day. If this continues to be true, then the system could be configured to avoid that destination service provider during the problematic times of the day.
- the system can react more quickly to solve or overcome problems.
- the same process that is shown in FIG. 9 to identify why calls are being terminated could also be used to identify calls that were declined. That is, call setup requests that did not result in a completed call.
- the system would utilize information about declined calls to try to determine why the calls were declined. For instance, the system might note that a particular destination gateway or a particular destination service provider is declining an abnormally large number of calls. This information would then be output to system personnel for corrective action. For instance, the call routing engine might be modified to avoid problematic destination gateways or destination service providers. By immediately tracking call declines and by immediately attempting to determine why the declines are occurring, the system can take quick corrective action to correct problems. This, in turn, will ensure that the largest possible number of calls are carried by the system, thereby increasing revenue.
- FIG. 10 is a schematic diagram of an exemplary system architecture for improved compiling of information relating to a telephone call routed over the internet.
- the system includes a routing controller 200 containing a routing engine 305 coupled to an iCDR subportion 375 .
- the iCDR subportion 375 is linked to a central iCDR server 380 .
- the routing controller 200 is linked to a gateway 125 , and a gatekeeper 205 .
- the routing controller 200 is also linked to client workstations 350 and 360 .
- the central iCDR server 380 is linked to several databases such as a real time iCDR database 390 , a historical database 392 , a billing database 394 , a rerouting database 396 and a call count database 398 .
- the iCDR server could also be linked to external sources of call information, such as a RADIUS server 370 .
- the routing controller 200 generates information used to inform the gateway 125 about where the packets containing information should be sent.
- the gatekeeper 205 performs admission control, address translation, call signaling, call management, or other functions that allow communication of voice and facsimile traffic over the networks.
- the gatekeeper 205 may also provide an interface between different gateways and the routing controller 200 .
- the gatekeeper 205 may also transmit routing requests to the routing controller 200 , receive an optimized route from the routing controller 200 and execute the route accordingly.
- the routing engine 305 receives the routing request from the gatekeeper 205 and may determine the best routes for the call traffic based on many factors.
- the routing engine 305 may also generate routing information that includes a destination gateway address and/or a preferred Internet service provider.
- the iCDR portion 375 coupled to the routing engine 305 reports the status of calls to the central iCDR. server 380 during call connection attempts. For instance, when a call enters a set-up state, the iCDR portion 375 sends a start signal for the set-up state to the central iCDR server 380 . When the set-up state is completed, the iCDR portion 375 sends a completed signal to the central iCDR server 380 .
- the iCDR portion 375 sends a start message to the central iCDR server 380 .
- the iCDR portion 375 sends a completion message to the central iCDR server 380 .
- a CDR for the call stored within the iCDR server is updated each time the status of the call changes.
- the central iCDR server 380 also may record the status of calls and the call information received from the iCDR portion 375 in the various databases 390 - 398 . Additionally, the central iCDR server 380 may compile information relating to a call as soon as the call is completed using the information in the CDR for the call. This would involve one or more of the methods described above for generating billing information, compiling trouble reports for declined or improperly terminated calls, or for other methods that utilize call information.
- the central iCDR server 380 may also prepare billing information as well as billing summary reports by compiling the status of calls, the call information, the CDR, the rate information, and/or the billing information. Alternatively, other portions of the system could prepare the billing information using information stored in the iCDR server, the billing database, and/or other sources of call and rate information.
- the central iCDR server 380 may also be configured to keep track of the total number of active calls and possibly also the number of re-routed calls in each of the incoming and outgoing trunk lines or groups according to the call state being reported from the routing engine 305 . This information can also be recorded in the Call Count Database 398 . By tracking the total number of active calls, the re-routed calls, and what trunks the calls are on, the system can track how much system capacity exists.
- the system might also include a connected calls database 399 , which is a listing of all calls that are presumed to be connected.
- the information stored in various databases 380 - 399 may be used by the central iCDR server 380 to create various different reports. Such reports could be issued on an hourly, daily, weekly, monthly, and/or annual basis. Such information may be utilized to make appropriate system changes such as obtaining more capacity to each incoming and outgoing trunk lines or groups or securing more bandwidth going towards a specific area, region and/or country.
- the central iCDR server 380 further may be configured to monitor the status of each of the system components such as the status of each incoming and/or outgoing trunk groups. Should a problem develop in one of the system components, such as a gateway, the central iCDR server 380 could communicate this problem to the routing engine 305 so that routes that include the affected component are not used for additional calls. Obviously, this prevents calls from being routed to non-functioning gateways or gateways encountering problems.
- the radius server 370 stores many items of call information. These include data necessary for billing of network services.
- the radius server 370 may also store data such as the incoming trunk group, call duration, and the IP address of gateways or carriers.
- the radius server 370 may be configured to store the call information needed to compile the CDRs. For this reason, the Radius Server 370 would be linked to the iCDR Server 380 , which would allow the iCDR server to use information from both the iCDR portion 375 of the Routing controller 200 , and information from the RADIUS Server 370 to compile call information for final CDRs.
- the client workstations 350 and 360 may be coupled to the routing controller 200 to provide a user interface.
- the client workstations 350 and 360 may also provide access to any data or call information in the databases 390 - 398 , the central iCDR scorer, or information about other system components in the routing controller 200 as well as the radius server 370 , the gateway 125 , and the gatekeeper 205 .
- the system can generate billing information more quickly than prior art systems where the billing information is batch compiled.
- the system can react more quickly to changing system conditions and to developing problems. This helps to ensure that the system derives maximum revenue from potential calls, and that the system maintains the highest possible system availability.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
A system and method of monitoring Voice over the Internet Protocol (VoIP) and facsimile over Internet Protocol (FoIP) calling over the Internet includes compiling information about each call after the call is terminated. By compiling information about each of the calls immediately after they are terminated, the system can quickly generate billing reports. The system can also quickly react to developing problems.
Description
- This application is a continuation-in-pan of U.S. application Ser. No. 10/646,687 filed Aug. 8, 2003 which is a Continuation-In-Part of U.S. application Ser. No. 10/298,208, filed Nov. 18, 2002, the disclosure of both of which is hereby incorporated by reference. The application also claims priority to U.S. Provisional Patent Application Ser. No. 60/331,479, filed Nov. 16, 2001, and U.S. Utility Application Ser. No. 10/094,671, filed Mar. 7, 2002, the disclosure of both of which are hereby incorporated by reference.
- 1. Field of the Invention
- The invention relates generally to the field of communications, and more specifically to a network configured for Voice over. Internet Protocol (VoIP) and/or Facsimile over Internet Protocol (FoIP).
- 2. Background of the Related Art
- Historically, most wired voice communications were carried over the Public Switched Telephone Network (PSTN), which relies on switches to establish a dedicated circuit between a source and a destination to carry an analog or digital voice signal. In the case of a digital voice signal, the digital data is essentially a constant stream of digital data. More recently, Voice over Internet Protocol (VoIP) was developed as a means for enabling speech communication using digital, packet-based, Internet Protocol (IP) networks such as the Internet. A principle advantage of IP is its efficient bandwidth utilization. VoIP may also be advantageous where it is beneficial to carry related voice and data communications over the same channel, to bypass tolls associated with the PSTN, to interface communications originating with Plain Old Telephone Service (POTS) with applications on the Internet, or for other reasons. As discussed in this specification, the problems and solutions related to VoIP may also apply to Facsimile over Internet Protocol (FoIP).
- Throughout the description that follows there are references to analog calls over the PSTN. This phrase could refer to analog or digital data streams that carry telephone calls through the PSTN. This is distinguished from VoIP or FoIP format calls, which are formatted as digital data packets.
-
FIG. 1 is a schematic diagram of a representative architecture in the related art for VoIP communications between originatingtelephone 100 anddestination telephone 145. In alternative embodiments, there may be multiple instances of each feature or component shown inFIG. 1 . For example, there may bemultiple gateways 125 controlled by asingle controller 120. There may also bemultiple controllers 120 and multiple PSTN's 115. Hardware and software components for the features shown inFIG. 1 are well-known. For example,controllers gateways - To initiate a VoIP session, a user lifts a handset from the hook of originating
telephone 100. A dial tone is returned to the originatingtelephone 100 via Private Branch Exchange (PBX) 110. The user dials a telephone number, which causes the PSTN 113 to switch the call to the originatinggateway 125, and additionally communicates a destination for the call to the originatinggateway 125. The gateway will determine which destination gateway a call should be sent to using a look-up table resident within thegateway 125, or it may consult thecontroller 120 for this information. - The gateway then attempts to establish a call with the
destination telephone 145 via theVoIP network 130, thedestination gateway 135,signaling lines 155 and the PSTN 140. If the destination gateway and PSTN are capable of completing the call, thedestination telephone 145 will ring. When a user at thedestination telephone 145 lifts a handset and says “hello?” a first analog voice signal is transferred through the PSTN 140 to thedestination gateway 135 vialines 155. Thedestination gateway 135 converts the first analog voice signal originating at thedestination telephone 145 into packetized digital data (not shown) and appends a destination header to each data packet. The digital data packets may take different routes through theVoIP network 130 before arriving at theoriginating gateway 125. The originatinggateway 125 assembles the packets in the correct order, converts the digital data to a second analog voice signal (which should be a “hello?” substantially similar to the first analog signal), and forwards the second analog voice signal to the originatingtelephone 100 vialines 155, PSTN 115 and PBX 110. A user at the originatingtelephone 100 can speak to a user at thedestination telephone 145 in a similar manner. The call is terminated when the handset of either the originatingtelephone 100 ordestination telephone 145 is placed on the hook of the respective telephone. In the operational example described above, thetelephone 105 is not used. - In the related art, the
controllers controllers gateways - It is necessary to track each individual call that is placed to generate billing and payment information. The billing system must be capable of providing lists that identify, for each call, the calling party, the called party, the duration of the call, and the time of day the call was placed. The call information is then combined with rate information to determine how much should be charged for each call, and how much the system should pay to other service providers for completing calls to called parties
- Prior art systems typically track information about each call to support the billing process. The tracked information is then complied at the end of each week or each day to determine who owes what for each call. This batch processing is time/resource consuming, and necessarily involves a delay between the time that calls are completed, and the time that bills are generated and sent. Also, because the call information is batch processed at the end of each week/day, there will be a delay before users even know what they owe for placed calls.
- An object of the invention is to solve at least one or more of the above problems and/or disadvantages in whole or in part and to provide at least the advantages described hereinafter.
- An improved control architecture for VoIP/FoIP communications system that embodies the invention processes call information shortly after each call is completed to determine the charges associated with the call. This eliminates the need to perform batch processing at the end of the day/week. This also means that the charges associated with a call will be known shortly after the call is completed.
- In addition, by closely monitoring the status of all calls carried by the system, the system controllers can determine when portions of the system are approaching maximum capacity. This allows for better load balancing.
- Furthermore, the system may be capable of determining when system assets are experiencing problems by monitoring the status of calls. This information can then be used to take corrective action. The call information tracked by the system might also be used to make better routing decisions. For instance, if the system notices that a large percentage of call setup requests for calls placed to a certain area are not resulting in a connected call, the system can look for trouble with the assets at that location.
- Additional advantages, objects, and features of the invention will be set forth in part in the description which follows and in part will become apparent to those having ordinary skill in the art upon examination of the following or may be learned from practice of the invention. The objects and advantages of the invention may be realized and attained as particularly pointed out in the appended claims.
- The invention will be described in detail with reference to the following drawings in which like reference numerals refer to like elements, and wherein:
-
FIG. 1 is a schematic diagram of a system architecture providing VoIP communications, according to the background; -
FIG. 2 is a schematic diagram of a system architecture providing VoIP/FoIP communications, according to a preferred embodiment of the invention; -
FIG. 3 is a schematic diagram of a system architecture providing improved control for VoIP communications, according to a preferred embodiment of the invention; -
FIG. 4 is a flow diagram illustrating a method for routing control, according to a preferred embodiment of the invention; -
FIG. 5 is a flow diagram illustrating a method for maintaining a call state, according to a preferred embodiment of the invention; -
FIG. 6 is a sequence diagram illustrating a method for communicating between functional nodes of a VoIP network, according to a preferred embodiment of the invention; -
FIG. 7 is a flow diagram of a method embodying the invention; -
FIG. 8 is a flow diagram of another method embodying the invention; -
FIG. 9 is a flow diagram of yet another method embodying the invention; and -
FIG. 10 is a block diagram of a system for monitoring the status of calls placed on a system, and for compiling information about the calls immediately after the calls are terminated. - A system embodying the invention is depicted in
FIG. 2 . The system includestelephones 100/105 connected to a private branch exchange (PBX) 110. The PBX, in turn, is connected to thePSTN 115. In addition,telephones 102 may be coupled to alocal carrier 114, which in turn routes long distance calls to one or more longdistance service providers 117. Those skilled in the art will recognize that calls could also originate from cellular telephones, computer based telephones, and/or other sources, and that those calls could also be routed through various carriers and service providers. Regardless of where the calls are originating from, they are ultimately forwarded to anoriginating gateway 125/126. - The originating
gateways 125/126 function to convert an analog call into digital packets, which are then sent via theInternet 130 to adestination gateway 135/136. In some instances, the gateways may receive a call that has already been converted into a digital data packet format. In this case, the gateways will function to communicate the received data packets to the proper destination gateways. However, the gateways may modify the received data packets to include certain routing and other formatting information before sending the packets on to the destination gateways. - The
gateways 125/126/135/136 are coupled to one ormore gatekeepers 205/206. Thegatekeepers 205/206 are coupled to arouting controller 200. Routing information used to inform the gateways about where packets should be sent originates at the routing controller. - One of skill in the art will appreciate that although a
single routing controller 200 is depicted inFIG. 2 , a system embodying the invention could includemultiple routing controllers 200. In addition, one routing controller may be actively used by gatekeepers and gateways to provide routing information, while another redundant routing controller may be kept active, but unused, so that the redundant routing controller can step in should the primary routing controller experience a failure. As will also be appreciated by those skilled in the art, it may be advantageous for the primary and redundant routing controllers to be located at different physical locations so that local conditions affecting the primary controller are not likely to also result in failure of the redundant routing controller. - In a preferred embodiment of the invention, as depicted in
FIG. 2 , thedigital computer network 130 used to communicate digital data packets between gateways may be compliant with the H.323 recommendation from the International Telecommunications Union (ITU). Use of H.323 may be advantageous for reasons of interoperability between sending and receiving points, because compliance with H.323 is not necessarily tied to any particular network, platform, or application, because H.323 allows for management of bandwidth, and for other reasons. Thus, in a preferred embodiment, one function of the originatinggateways gateways VoIP network 130. Moreover, because H.323 is a framework document, the ITU H.225 protocol may be used for communication and signaling between thegateways 125/126 and 135/136, and the IETF RIP protocol may be used for audio data between thegateways 125/126 and 135/136, and RAS (Registration, Admission, and Status) protocol may be used in communications with thegatekeepers 205/206. - According to the invention, the
gatekeeper 205 may perform admission control, address translation, call signaling, call management, or other functions to enable the communication of voice and facsimile traffic over thePSTN networks 115/140 and theVoIP network 130. The ability to provide signaling for networks using Signaling System No. 7 (SS7) and other signaling types may be advantageous over network schemes that rely on gateways with significantly less capability. For example, related art gateways not linked to the gatekeepers of the present invention may only provide signaling for Multi-Frequency (MF), Integrated Services Digital Network (ISDN), or Dual Tone Multi-Frequency (DTMF). - According to a preferred embodiment of the present invention, the
gatekeeper 205 may further provide an interface between different gateways, and therouting controller 200. Thegatekeeper 205 may transmit routing requests to therouting controller 200, receive an optimized route from therouting controller 200, and execute the route accordingly. - Persons skilled in the art of communications will recognize that gatekeepers may also communicate with other gatekeepers to manage calls outside of the originating gatekeepers area of control. Additionally, it may be advantageous to have multiple gatekeepers linking a particular gateway with a particular routing controller so that the gatekeepers may be used as alternates, allowing calls to continue to be placed to all avail-able gateways in the event of failure of a single gatekeeper. Moreover, although the gatekeeping function may be logically separated from the gateway function, embodiments where the gatekeeping and gateway functions are combined onto a common physical host are also within the scope of the invention.
- In a system embodying the present invention, as shown in
FIG. 2 , arouting controller 200 is logically coupled togateways 125/126 and 135/136 throughgatekeepers 205/206. Therouting controller 200 contains features not included in the priorart signaling controllers Routing controller 200 andgatekeepers 205/206 may be hosted on one or more network-based servers which may be or include, for instance, a workstation running the Microsoft Windows™ NT™, Windows™2000, Unix, Linux, Xenix, IBM AIX™, Hewlett-Packard UX™, Novell Netware™, Sin Microsystems Solaris™, OS/2™, BeOS™, Mach, Apache, OpenStep™, Java Virtual Machine or other operating system or platform. Detailed descriptions of the functional portions of a typical routing controller embodying the invention is provided below. - As indicated in
FIG. 3 , arouting controller 200 may include arouting engine 305, a Call Detail Record (CDR)engine 325, atraffic database 330, atraffic analysis engine 335, aprovisioning engine 340, and aprovisioning database 345. Therouting engine 305,CDR engine 325,traffic analysis engine 335, andprovisioning engine 340 may exist as independent processes and may communicate to each other through standard interprocess communication mechanisms. They might also exist on independent hosts and communicate via standard network communications mechanisms. - In alternative embodiments, the
routing engine 305, Call Detail Record (CDR)engine 325,traffic database 330,traffic analysis engine 335,provisioning engine 340, orprovisioning database 345 may be duplicated to provide redundancy. For instance, twoCDR engines 325 may function in a master-slave relationship to manage the generation of billing data. - The
routing engine 305 may include acommunications layer 310 to facilitate an interface between therouting engine 305 and thegatekeepers 205/206. Upon receipt of a routing request from a gatekeeper, therouting engine 305 may determine the best routes for VoIP traffic based upon one or more predetermined attributes such as the selected carrier service provider, time of day, a desired Quality of Service (QoS), cost, or other factors. The routing information generated by therouting engine 305 could include a destination gateway address, and/or a preferred Internet Service Provider to use to place the call traffic into the Internet. Moreover, in determining the best route, therule engine 315 may apply one or more exclusionary rules to candidate routes, based upon known bad routes, provisioning data from provisioningdatabase 345, or other data. - The
routing engine 305 may receive more than one request to route a single call. For example, when a first routing attempt was declined by the terminating gateway, or otherwise failed to result in a connection, or where a previous routing attempt resulted in a disconnect other than a hang-up by the originator or recipient, then the routing engine may receive a second request to route the same call. To provide redundancy, therouting engine 305 may generate alternative routes to a particular far-end destination. In a preferred embodiment of the invention, when the routing engine receives a routing request, the routing engine will return both preferred routing information, and alternative routing information. In this instance, information for at least one next-best route will be immediately available in the event of failure of the preferred route. In an alternative embodiment,routing engine 305 may determine a next-best route only after the preferred route has failed. An advantage of the latter approach is thatrouting engine 305 may be able to better determine the next-best route with the benefit of information concerning the most recent failure of the preferred route. - To facilitate alternative routing, and for other reasons, the
routing engine 305 may maintain the state of each VoIP call in acall state library 320. For example,routing engine 305 may store the state of a call as “set up,” “connected,” “disconnected,” or some other state. -
Routing engine 305 may further format information about a VoIP call such as the originator, recipient, date, time, duration, incoming trunk group, outgoing trunk group, call states, or other information, into a Call Detail Record (CDR). Including the incoming and outgoing trunk group information in a CDR may be advantageous for billing purposes over merely including IP addresses, since IP addresses may change or be hidden, making it difficult to identify owners of far-end network resources.Routing engine 305 may store CDR's in acall state library 320, and may send CDR's to theCDR engine 325 in real time, at the termination of a call, or at other times. - The
CDR engine 325 may store CDR's to atraffic database 330. To facilitate storage, theCDR engine 325 may format CDR's as flat files, although other formats may also be used. The CDR's stored in thetraffic database 330 may be used to generate bills for network services. TheCDR engine 325 may also send CDR's to thetraffic analysis engine 335. - Data necessary for the billing of network services may also be stored in a Remote Authentication Dial-In User Service (RADIUS)
server 370. In fact, in some embodiments, the data stored in the RADIUS server may be the primary source of billing information. TheRADIUS server 370 may also directly communicate with agateway 125 to receive and store data such as incoming trunk group, call duration, and IP addresses of near-end and far-end destinations. TheCDR adapter 375 may read data from both thetraffic database 330 and theRADIUS server 370 to create a final CDR. The merged data supports customer billing, advantageously including information which may not be available fromRADIUS server 370 alone, or thetraffic database 330 alone. - The
traffic analysis engine 335 may collect CDR's, and may automatically perform traffic analysis in real time, near real time, or after a predetermined delay. In addition,traffic analysis engine 335 may be used to perform post-traffic analysis upon user inquiry. Automatic or user-prompted analysis may be performed with reference to a predetermined time period, a specified outgoing trunk group, calls that exceed a specified duration, or according to any other variable (s) included in the CDR's. - The
provisioning engine 340 may perform tasks necessary to route particular calls over the Internet. For example, theprovisioning engine 340 may establish or modify client account information, authorize a long distance call, verify credit, assign phone numbers where the destination resides on a PSTN network, identify available carrier trunk groups, generate routing tables, or perform other tasks. In one embodiment of the invention, provisioning may be performed automatically. In another embodiment, provisioning may be performed with user input. Hybrid provisioning, that is, a combination of automated and manual provisioning, may also be performed. Theprovisioning engine 340 may further cause provisioning data to be stored in aprovisioning database 345. -
Client workstations controller 200 to provide a user interface. As depicted inFIG. 3 , the clients) 350 may interface to thetraffic analysis engine 335 to allow a user to monitor network traffic. The client(s) may interface to theprovisioning engine 340 to allow a user to view or edit provisioning parameters. In alternative embodiments, a client may be adapted to interface to both thetraffic analysis engine 335 andprovisioning engine 340, or to interface with other features ofrouting controller 200. - In a system embodying the invention, as shown in
FIG. 2 , thegateways 125/126 would first receive a request to set up a telephone call from the PSTN, or from aLong Distance Provider 117, or from some other source. The request for setting up the telephone call would typically include the destination telephone number. In order to determine which destination gateway should receive the packets, the gateway would consult thegatekeeper 205. - The
gatekeeper 205, in turn may consult therouting controller 200 to determine the most appropriate destination gateway. In some situations, the gatekeeper may already have the relevant routing information. In any event, the gatekeeper would forward the routing information to the originatinggateway 125/126, and the originating gateway would then send the appropriate packets to the appropriate destination gateway. As mentioned previously, the routing information provided by the gatekeeper may include just a preferred destination gateway, or it may include both the preferred destination gateway information, and information on one or more next-best destination gateways. The routing information may also include a preferred route or path onto the Internet, and one or more next-best routes. The routing information may further include information about a preferred Internet Service Provider. -
FIG. 4 is a flow chart illustrating a method embodying the invention for using therouting controller 200. Instep 400, therouting controller 200 receives a routing request from either a gatekeeper, or a gateway. Instep 405, a decision is made as to whether provisioning data is available to route the call. If the provisioning data is not available, the process advances to step 410 to provision the route, then to step 415 for storing the provisioning data before returning todecision step 405. - If, on the other hand, if it is determined in
step 405 that provisioning data is available, then the process continues to step 420 for generating a route. In a preferred embodiment of the invention, step 420 may result in the generation of information for both a preferred route, and one or more alternative routes. The alternative routes may further be ranked from best to worst. - The routing information for a call could be simply information identifying the destination gateway to which a call should be routed. In other instances, the routing information could include information identifying the best Internet Service Provider to use to place the call traffic onto the Internet. In addition, the routing controller may know that attempting to send data packets directly from the originating gateway to the destination gateway is likely to result in a failed call, or poor call quality due to existing conditions on the Internet. In these instances, the routing information may include information that allows the data packets to first be routed from the originating gateway to one or more interim gateways, and then from the interim gateways to the ultimate destination gateway. The interim gateways would simply receive the data packets and immediately forward the data packets on to the ultimate destination gateway.
- Step 420 may also include updating the call state library, for example with a call state of “set up” once the route has been generated. Next, a CDR may be generated in
step 425. The CDR is a record that is created in a database, in which call information will be stored. Each CDR will reflect information about a particular call, or call attempt. - Once a CDR is available, the CDR may be stored in
step 430 and sent to the traffic analysis engine instep 435. In one embodiment, steps 430 and 435 may be performed in parallel, as shown inFIG. 4 . In alternative embodiments,steps -
FIG. 5 is a flow diagram illustrating a method for maintaining a call state, which may be performed by routingengine 305. This call state information may be stored in the CDR, or call state information can be stored in a separate location. After starting instep 500, the process may determine instep 505 whether a route request has been received from a gatekeeper or other source. If a routing request has not been received, the process may advance to adelay step 510 before returning todecision step 505. If, however, it is determined instep 505 that a route request has been received, then a call state may be set to “set up” instep 515. - The process of
FIG. 5 may then determine instep 520 whether a connect message has been received from a gatekeeper or other source. If a connect message has not been received, the process may advance to delaystep 525 before returning todecision step 520. - If however, it is determined in
step 520 that a connect message has been received, then a call state may be set to “connected” instep 530. - The process of
FIG. 5 may then determine instep 535 whether a disconnect message has been received from a gate keeper or other source. If a disconnect message has not been received, the process may advance to delaystep 540 before returning todecision step 535. If, however, it is determined instep 535 that a disconnect message has been received, then a call state may be set to “disconnected” instep 545 before the process ends instep 550. - The process depicted in
FIG. 5 will operate to keep the call state for all existing calls up to date to within predetermined delay limits. In alternative embodiments of the invention, the call state monitoring process can monitor for other call states such as “hang-up,” “busy,” or other call states not indicated above. Moreover, monitoring for other call states may be instead of or in addition to, those discussed above. Further, in one embodiment, monitoring could be performed in parallel, instead of the serial method illustrated inFIG. 5 . - In some embodiments of the invention, the call state for each call may be associated with recorded times. For instance, for a particular call, the call state of setup may be associated with time T1, the call state connected may be associated with time T2, and the call state disconnected may be associated with time T3. This would allow the system to determine that the duration of the call setup was T2-T1. Similarly, the duration of the call would be calculated as T3-T2.
-
FIG. 6 discloses a sequence of messages between an originating gateway, a routing engine, a call state library, and a destination gateway, according to a preferred embodiment of the invention. In operation of the network, the originating gateway may send a first request for routing information, in the form of a first Admission Request (ARQ) message, to a touting engine within a routing controller. The request would probably be passed on through a gatekeeper logically positioned between the gateway and the routing engine in the routing controller. - Upon receipt of the routing request, the routing engine may store a set-up state in call state library. The routing engine may then determine a best route based upon one or more predetermined attributes such as the selected carrier service provider, a desired Quality of Service (QoS), cost, or other factors. The routing engine may then send information pertaining to the best route to the originating gateway, possibly via a gatekeeper, as a first ARQ response message. The gateway would then initiate a first call to a destination gateway using the information contained within the response message. As shown in
FIG. 6 , the destination gateway may return a decline message to the originating gateway. - When the originating gateway receives a decline message, the gateway may send a second request for routing information, in the form of a second ARQ message, to routing engine. Routing engine may recognize the call as being in a set up state, and may determine a next best route for completion of the call. Routing engine may then send a second ARQ response message to the originating gateway. The originating gateway may then send a second call message to the same or a newly selected destination gateway using the next best route. In response to the second call message, the destination gateway may return a connect message to the originating gateway.
- The routing engine may use a conference ID feature of the H.323 protocol, which is unique to every call, in order to keep track of successive routing attempts. Thus, upon receiving a first ARQ for a particular call, routing engine may respond with a best route; upon receiving a second ARQ associated with the same call, routing engine may respond with the second best route. If the second call over the next best route does not result in a connection, the originating gateway may send a third ARQ message to routing engine, and so on, until an ARQ response message from routing engine enables a call to be established between the originating gateway and a destination gateway capable of completing the call to the called party.
- In alternative embodiments of the invention, the initial ARQ response from the routing engine to the originating gateway may include information about the best route, and one or more next-best routes. In this instance, when a call is declined by one terminating gateway, the originating gateway can simply attempt to route the call using the next-best route without the need to send additional queries to the routing engine.
- Once the originating gateway receives a connect message from a destination gateway, the originating gateway may send an Information Request Response (IRR) message to the routing engine to indicate the connect. In response, the routing engine may store a connected state message to the call state library.
- After a call is connected, a call may become disconnected. A disconnect may occur because a party has hung up, because of a failure of a network resource, or for other reasons. In this instance, destination gateway may send a disconnect message to the originating gateway. In response, originating gateway may send a Disengage Request (DRQ) message to the routing engine. The routing engine may then update the call state by storing a disconnected state status in the call state library.
- Information relating to each telephone call routed over the Internet may be obtained and stored as described above. In traditional systems, the information is then later compiled with rate information to generate billing data. This billing data can then be used to bill the clients that placed calls through the system. The information can also be used to verify charges submitted by third parties that were used to complete the calls.
- For instance, a CDR for a particular call would indicate information about the party that requested that the call be made, information about the called party, and possibly the carrier used to complete the call. If this information is not directly stored in the CDR, the CDR would at least include information from which these things could be determined.
- The system will have pre-negotiated rates for placing calls for the party making the call request. Similarly, the system will have pre-negotiated rates with third party carriers for completing calls from the Internet to the ultimate called parties. Once the system knows where the call came from, where the call went to, and how long the call lasted, the system can determine: (1) how much to charge the calling party, and (2) how much it will have to pay to a third party for completing the call.
- Typically the call information contained in the CDRs is compiled with the rate information as part of a batch processing method that occurs only periodically. In some instances, the system would perform this batch processing for all calls that occurred during a 24 hour period at a point in time when excess processing capacity exists. For instance, if system processing assets are available between midnight and 5 am, the batch processing could be performed at this time to effectively utilize the excess processing capacity that exists at this point in the day.
- The result of the batch processing would be billing information that can be submitted to the clients who use the system to place calls. Depending on the client, this information could be presented in many different ways. Another result would be estimates of what third party carriers will charge for calls that were completed to called parties.
- While batch processing allows for efficient use of system processing capacity, there are several drawbacks to compiling the call rate and billing information in this fashion. First, the billing information is not available until the batch processing has been performed. This could result in a delay of a day or more. Second, if there is a particularly large volume of calls, batch processing may not allow the system to keep up.
- To avoid the above drawbacks of batch processing, the inventors have devised a way of processing call information almost immediately after a call is completed, or immediately after a call is re-routed. This allows billing information to become available almost immediately after a call is completed or re-routed. It also avoids problems with batch processing consuming extremely large amounts of processing capacity during certain times of the day since the call processing is spread out over the day. In addition, because the information contained in the CDRs is processed in “real time” or near real time, the system can use the information to make better routing decisions and to help identify problems on the network.
-
FIG. 7 shows a flow diagram of an exemplary method embodying the invention for recording and compiling information relating to a telephone call routed over the Internet. The end result of the process is the creation of a final call detail record (CDR) for a call. - In a typical method embodying the invention, a preliminary or initial CDR will be created each time a call request is received from a customer. That the CDR will be updated as the call processing proceeds. Once the call is completed, or re-routed, a final CDR would be created and stored.
- When a call setup request is received, the initial CDR would be created. At this point in time, the CDR could include information about the destination telephone number, and the individual/carrier who is making the call request. The CDR might also indicate the telephone number of the calling party. The system would then attempt to place the call. This would involve attempting to complete the call through a destination service provider. As mentioned above, it may require several call setup attempts before the call can be completed to the called party. Each call setup attempt would be recorded and that information would become part of the CDR. Any re-routes that occur would also become part of the recorded information. The amount of time required to complete the call to the called party might also be recorded. If the call cannot be completed, this information would also become part of the CDR, along with the reason that the call could not be completed.
- Assuming the call is completed to the called party, the routing to be used for the call is certain, and the CDR could be updated to include an indication of the destination carrier that has completed the call to the called party. The CDR would then be updated as the call progresses to indicate the duration of the call, as this information should be available from the gateway. Once the call is completed, the final total duration will be known and recorded. Alternatively, the beginning and end times of the call might be recorded, which would allow the duration to be calculated at a later time. Also, if the call is terminated without either the calling patty the called party hanging up, which probably indicates a problem, this information could also be recorded.
- A variety of other information could also be recorded in the CDR. For instance, the outgoing and incoming trunk group might be recorded. The actual originating and destination gateways used to route the call might be recorded. If the call is deliberately routed through interim gateways, the identity of the interim gateway(s) might also be recorded. The Internet Service Provider used to place the call data onto the Internet might be recorded. An indication of how the call was terminated might be recorded. As will be appreciated, many other items of date could also be recorded in the CDR.
- A general method embodying the invention is shown in
FIG. 7 . The operation begins in step S700 and proceeds to step S702 where call information relating to a telephone call, is obtained. This obtaining step could involve each of the operations described above where information about the call is recorded into the initial CDR, and where that information is updated as the call processing is continued. Much of this information will be available from the core system assets. In some instance, however, the system might also consult additional sources of information about a particular call. For instance, the system might also consult a RADIUS server to obtain information about a particular call. The use of a unique call identification number could allow the system to match up information from an initial CDR with information stored in locations such as a RADIUS server. - Some kinds of information may be available from more than a single source. For instance, the call duration is typically recorded by both the Routing Engine, and the RADIUS server. However, the call duration information recorded in the RADIUS server is almost always more accurate than the call. duration information stored in the Routing Engine. For this reason, when information is available from more than one source, the system will have pre-determined preferences as to which source is used for the final version of the CDR. The system will always use the more accurate source, unless the information is missing or corrupted in the more accurate source. In that instance, the system would use the information from the less accurate source.
- Then, in step S704, all or a selection of the obtained call information may be compiled to create a final CDR for a call. This compilation process will determine various things about the call. One of the primary purposes of the compiling step is to determine billing information. In this instance, rate information would be combined with the call information to determine who should be charged for the call, and how much they should be charged. This step could also involve determining how much the system will have to pay to a destination carrier to complete the call to the called party. Also, during the compiling step the system will pull information available from multiple sources and decide which information to record in the final CDR. As mentioned above, this might involve selecting information from the more reliable source. This might also involve comparing the information available from two or more sources in order to determine what to record.
- Once the system has determined what information should appear in the final CDR, in Step S706 the system will record the final CDR in a CDR database. All or portions of the CDR might also be recorded in other locations. For instance, call billing information could be output to a billing management system. In the case of call cost information, the information could be output to a costs management system. If the compiled information relates to identified problems, the compiled information might be sent to a traffic or system monitoring system.
- The information output in step S706 could also be used to identify trouble spots in the system. For instance, if many calls being routed to a particular destination gateway are being terminated for technical reasons, and not because the caller or called party terminates the call, this could indicate a problem with that destination gateway. System personnel could then initiate diagnostics or a physical check to see if there is a problem. Because this information is being output in real-time, or at least quickly after the problem has been noted (near-real-time), rather than after batch processing at the end of the day, trouble spots can be identified much more quickly than with the old batch processing system.
- Various portions of the call information might also be sent to a traffic monitoring and analysis system. A traffic monitoring and analysis system could receive information about each of the calls handled by the system so that traffic trends can be spotted. For instance, the system could note when traffic to a particular destination is increasing to alert system personnel that additional capacity may become necessary in the future. Similarly, if the monitoring and analysis system notes that traffic is decreasing to a particular location, system personnel could be alerted to purchase less assets in that area. Here again, because the CDRs are being completed immediately after the calls are completed, or immediately after a call is re-routed, the information within the CDRs can be used to quickly react to changing traffic conditions.
- In a similar manner, if the call information output in Step S706 indicates that many calls placed through a particular Internet Service provider are experiencing call quality problems, the system can decide to route calls through a different Internet Service Provider. Again, because the information is complied and output immediately after the calls are completed or re-routed, trouble spots can be quickly identified and corrected.
-
FIG. 8 depicts a flow diagram that represents a method of compiling financial call information that embodies the invention. This method generally corresponds to step S704 in the method shown inFIG. 7 . - The method begins at step S800, and proceeds to step S802 where rate information for the party or service provider requesting the call is obtained. In some instances, the requesting party (who will ultimately be billed) would be an individual. In other cases, the requesting party could be a service provider who routes long distance calls through the system, and who acts as a middleman between the system and an individual. Regardless of who will be billed, the system would almost always have a set of pre-negotiated rates that will apply for the requesting party. These rates might vary depending on the time of day and the intended destination of the call. In addition, one rate might apply for a first number of calling minutes, and a second rate might apply for additional calling minutes. In fact, all sorts of different rate variables might be involved. But regardless of the rate details, the system should be able to obtain the rate for the requesting party.
- In step S804, the system would obtain rate information for the party that will complete the call to the called party. This would typically be a local or national telephone service provider in the location of the called party. In some instance, this could include more than one party. For instance, one party at the destination location might be responsible for pulling the data traffic off the Internet, while another party is responsible for completing the call to the called party.
- The rate information for the party completing the call would also typically be pre-negotiated. It would usually be dependent on the location of the called party, with different rates being used for different cities or locations. The rates might vary depending on the time of day. In addition, a first rate might apply for the first number of minutes placed through the destination carrier, and a second rate might apply for additional minutes placed through the destination carrier. In that case, the system would have to know how many minutes of calling time has already been placed though the destination carrier before the system would know which rate to use. Thus, the step of selecting the appropriate rate might require that the system obtain information from a variety of sources that have nothing to do with the actual call itself.
- In step S806, the system would then use the information about a particular call reflected in the CDR for the call, and the rate information obtained in steps S802 and S804 to calculate call costs and/or call revenue. This would include the costs to be charged to the party requesting the call, the costs that will likely be charged by the destination carrier completing the call, and possibly the revenue to be derived from calls. In some embodiments of the invention, only the charges for the party requesting the call might be calculated. In that instance, step S804 would be unnecessary.
-
FIG. 9 also depicts a method embodying the invention. In this method, the system. uses the information gathered during a. call to identify potential problems with the system. This method could also correspond to step S704 of the method shown inFIG. 7 . In alternate embodiments, the method shown inFIG. 9 could be performed after the method shown inFIG. 7 has been completed, and after the final CDR for one or more calls have been recorded in the CDR database. - This method begins at step S900, and proceeds to step S902 where the system determines why a call was terminated. In particular, the system is looking to determine if a call was terminated by the failure of a system asset, rather than because the calling party or the called party hung up the phone. If the system determines that the call was terminated because of the failure of a system asset, then in step S904 the system attempts to determine what particular assets could have caused the call termination. For instance, the call may have been improperly terminated because of a problem with the originating, interim or terminating gateways. Alternatively, the call may have experienced a problem because of an Internet Service provider problem, or because of a problem with the originating or terminating service provider. If possible, the system will attempt to pinpoint the exact cause of the problem. This information may be recorded in a CDR, or the information may be derived from the information recorded in a CDR.
- Also, the system might be able to examine multiple CDRs to spot trends. For instance, if the system notes that a CDR for a particular indicates that the call was prematurely terminated, the system could then look for other CDRs for calls placed through the same terminating gateway. If the CDRs indicate that multiple calls through the same terminating gateway have been prematurely terminated, the system could conclude that there is a problem with the terminating gateway.
- Similarly, the system might look at multiple CDRs for calls placed through the same destination service provider, for calls using the same Internet Service Provider, or for multiple calls requested by the same requesting party. If this information indicates a common thread for multiple premature call terminations, the system may be able to pinpoint the likely problem. Of course, many other types of information in the CDRs could be analyzed to locate potential problems.
- Finally, in step S906, a trouble report would be issued.
- If a trouble report indicates that a particular asset is causing call terminations, system personnel could initiate corrective action. System personnel could also use the information contained in trouble reports to spot trends. For instance, the trouble reports might indicate that calls placed through a particular destination service provider tend to fail between certain hours of the day. If this continues to be true, then the system could be configured to avoid that destination service provider during the problematic times of the day. Here again, because the information about calls is being output immediately after the calls are terminated, the system can react more quickly to solve or overcome problems.
- The same process that is shown in
FIG. 9 to identify why calls are being terminated could also be used to identify calls that were declined. That is, call setup requests that did not result in a completed call. Again, the system would utilize information about declined calls to try to determine why the calls were declined. For instance, the system might note that a particular destination gateway or a particular destination service provider is declining an abnormally large number of calls. This information would then be output to system personnel for corrective action. For instance, the call routing engine might be modified to avoid problematic destination gateways or destination service providers. By immediately tracking call declines and by immediately attempting to determine why the declines are occurring, the system can take quick corrective action to correct problems. This, in turn, will ensure that the largest possible number of calls are carried by the system, thereby increasing revenue. -
FIG. 10 is a schematic diagram of an exemplary system architecture for improved compiling of information relating to a telephone call routed over the internet. As shown inFIG. 10 , the system includes arouting controller 200 containing arouting engine 305 coupled to aniCDR subportion 375. TheiCDR subportion 375 is linked to acentral iCDR server 380. - The
routing controller 200 is linked to agateway 125, and agatekeeper 205. Therouting controller 200 is also linked toclient workstations central iCDR server 380 is linked to several databases such as a realtime iCDR database 390, ahistorical database 392, abilling database 394, arerouting database 396 and acall count database 398. The iCDR server could also be linked to external sources of call information, such as aRADIUS server 370. - As shown in
FIG. 10 , therouting controller 200 generates information used to inform thegateway 125 about where the packets containing information should be sent. Thegatekeeper 205 performs admission control, address translation, call signaling, call management, or other functions that allow communication of voice and facsimile traffic over the networks. Thegatekeeper 205 may also provide an interface between different gateways and therouting controller 200. Thegatekeeper 205 may also transmit routing requests to therouting controller 200, receive an optimized route from therouting controller 200 and execute the route accordingly. - The
routing engine 305 receives the routing request from thegatekeeper 205 and may determine the best routes for the call traffic based on many factors. Therouting engine 305 may also generate routing information that includes a destination gateway address and/or a preferred Internet service provider. TheiCDR portion 375 coupled to therouting engine 305 reports the status of calls to the central iCDR.server 380 during call connection attempts. For instance, when a call enters a set-up state, theiCDR portion 375 sends a start signal for the set-up state to thecentral iCDR server 380. When the set-up state is completed, theiCDR portion 375 sends a completed signal to thecentral iCDR server 380. Thereafter, when a call enters a connected state, theiCDR portion 375 sends a start message to thecentral iCDR server 380. When the call connect state is completed, theiCDR portion 375 sends a completion message to thecentral iCDR server 380. Thus, a CDR for the call, stored within the iCDR server is updated each time the status of the call changes. - The
central iCDR server 380 also may record the status of calls and the call information received from theiCDR portion 375 in the various databases 390-398. Additionally, thecentral iCDR server 380 may compile information relating to a call as soon as the call is completed using the information in the CDR for the call. This would involve one or more of the methods described above for generating billing information, compiling trouble reports for declined or improperly terminated calls, or for other methods that utilize call information. - The
central iCDR server 380 may also prepare billing information as well as billing summary reports by compiling the status of calls, the call information, the CDR, the rate information, and/or the billing information. Alternatively, other portions of the system could prepare the billing information using information stored in the iCDR server, the billing database, and/or other sources of call and rate information. - The
central iCDR server 380 may also be configured to keep track of the total number of active calls and possibly also the number of re-routed calls in each of the incoming and outgoing trunk lines or groups according to the call state being reported from therouting engine 305. This information can also be recorded in theCall Count Database 398. By tracking the total number of active calls, the re-routed calls, and what trunks the calls are on, the system can track how much system capacity exists. The system might also include aconnected calls database 399, which is a listing of all calls that are presumed to be connected. - The information stored in various databases 380-399 may be used by the
central iCDR server 380 to create various different reports. Such reports could be issued on an hourly, daily, weekly, monthly, and/or annual basis. Such information may be utilized to make appropriate system changes such as obtaining more capacity to each incoming and outgoing trunk lines or groups or securing more bandwidth going towards a specific area, region and/or country. - The
central iCDR server 380 further may be configured to monitor the status of each of the system components such as the status of each incoming and/or outgoing trunk groups. Should a problem develop in one of the system components, such as a gateway, thecentral iCDR server 380 could communicate this problem to therouting engine 305 so that routes that include the affected component are not used for additional calls. Obviously, this prevents calls from being routed to non-functioning gateways or gateways encountering problems. - The
radius server 370 stores many items of call information. These include data necessary for billing of network services. Theradius server 370 may also store data such as the incoming trunk group, call duration, and the IP address of gateways or carriers. Theradius server 370 may be configured to store the call information needed to compile the CDRs. For this reason, theRadius Server 370 would be linked to theiCDR Server 380, which would allow the iCDR server to use information from both theiCDR portion 375 of theRouting controller 200, and information from theRADIUS Server 370 to compile call information for final CDRs. - The
client workstations routing controller 200 to provide a user interface. Theclient workstations routing controller 200 as well as theradius server 370, thegateway 125, and thegatekeeper 205. - As explained above, in a system and method embodying the invention, where call information is compiled immediately after calls are completed or re-routed, the system can generate billing information more quickly than prior art systems where the billing information is batch compiled. In addition, the system can react more quickly to changing system conditions and to developing problems. This helps to ensure that the system derives maximum revenue from potential calls, and that the system maintains the highest possible system availability.
- The foregoing embodiments and advantages are merely exemplary and are not to be construed as limiting the present invention. The present teaching can be readily applied to other types of apparatuses. The description of the present invention is intended to be illustrative, and not to limit the scope of the claims. Many alternatives, modifications, and variations will be apparent to those skilled in the art. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents but also equivalent structures.
Claims (20)
1-21. (canceled)
22. A method of deciding how to route new telephone calls over a Voice Over Internet Protocol (VOIP) call routing system, comprising:
recording the call state of each telephone call being carried by the VOIP call routing system in a real-time call state database;
updating the call states of the calls listed in the real-time call state database each time a call state changes and immediately after the call state changes; and
deciding how to route a new call over the VOIP call routing system based on the information in the real-time call state database.
23. The method of claim 22 , wherein the deciding step comprises:
determining whether a first trunk group of the VOIP call routing system is approaching its call carrying capacity using the information in the real-time call state database; and
routing the new call through a trunk group other than the first trunk group if the determining step indicates that the first trunk group is at or near its call carrying capacity.
24. The method of claim 23 , wherein the deciding step comprises deciding to route the new call through one of a plurality of Internet service providers.
25. The method of claim 24 , further comprising receiving information about the call quality of calls currently being routed through a first Internet service provider, and wherein the deciding step comprises deciding route the new call through an Internet service provider other than the first Internet service provider if the received information indicates that calls currently being routed through the first Internet service provider have poor call quality.
26. The method of claim 22 , wherein the deciding step comprises:
determining whether a first destination gateway utilized by the VOIP call routing system is approaching its call carrying capacity using the information in the real-time call state database; and
routing the new call through a destination gateway other than the first destination gateway if the determining step indicates that the first destination gateway is at or near its call carrying capacity.
27. The method of claim 26 , wherein the deciding step comprises deciding to route the new call through one of a plurality of Internet service providers.
28. The method of claim 27 , further comprising receiving information about the call quality of calls currently being routed through a first Internet service provider, and wherein the deciding step comprises deciding route the new call through an Internet service provider other than the first Internet service provider if the received information indicates that calls currently being routed through the first Internet service provider have poor call quality.
29. The method of claim 22 , wherein the deciding step comprises deciding to route the new call through one of a plurality of Internet service providers.
30. The method of claim 29 , further comprising receiving information about the call quality of calls currently being routed through a first Internet service provider, and wherein the deciding step comprises deciding route the new call through an Internet service provider other than the first Internet service provider if the received information indicates that calls currently being routed through the first Internet service provider have poor call quality.
31. The method of claim 22 , wherein the deciding step comprises deciding to route the new call through one of a plurality of destination service providers.
32. The method of claim 31 , further comprising receiving information about the quality of service currently being offered by one of the plurality of destination service providers, and wherein the deciding step comprises deciding route the new call through a destination service provider other than the first destination service provider if the received information indicates that the first destination service provider is currently offering poor call quality.
33. A system for deciding how to route new telephone calls over a Voice Over Internet Protocol (VOIP) call routing system, comprising:
means for recording the call state of each telephone call being carried by the VOIP call routing system in a real-time call state database;
means for updating the call states of the calls listed in the real-time call state database each time a call state changes and immediately after the call state changes; and
means for deciding how to route a new call over the VOIP call routing system based on the information in the real-time call state database.
34. A system for deciding how to route new telephone calls over a Voice Over Internet Protocol (VOIP) call routing system, comprising:
a recording unit that records the call state of each telephone call being carried by the VOIP call routing system in a real-time call state database;
an updating unit that updates the call states of the calls listed in the real-time call state database each time a call state changes and immediately after the call state changes; and
a routing unit that decides how to route a new call over the VOIP call routing system based on the information in the real-time call state database.
35. The system of claim 34 , wherein the routing unit comprises a capacity determining unit that determines whether a first trunk group of the VOIP call routing system is approaching its call carrying capacity using the information in the real-time call state database, and wherein the routing unit decides to route the new call through a trunk group other than the first trunk group if the determining unit determines that the first trunk group is at or near its call carrying capacity.
36. The system of claim 34 , wherein the routing unit comprises a determining unit that determines whether a first destination gateway utilized by the VOIP call routing system is at or near its call carrying capacity using the information in the real-time call state database, and wherein the routing unit decides to route the new call through a destination gateway other than the first destination gateway if the determining unit determines that the first destination gateway is at or near its call carrying capacity.
37. The system of claim 34 , wherein the routing unit decides to route the new call through one of a plurality of Internet service providers.
38. The system of claim 37 , wherein the routing unit receives information about the call quality of calls currently being routed through a first Internet service provider, and wherein routing unit decides to route the new call through an Internet service provider other than the first Internet service provider if the received information indicates that calls currently being routed through the first Internet service provider have poor call quality.
39. The system of claim 34 , wherein the routing unit decides to route the new call through one of a plurality of destination service providers.
40. The system of claim 39 , wherein the routing unit receives information about the quality of service currently being offered by one of the plurality of destination service providers, and wherein the routing unit decides to route the new call through a destination service provider other than the first destination service provider if the received information indicates that the first destination service provider is currently offering poor call quality.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/883,647 US20110002330A1 (en) | 2001-11-16 | 2010-09-16 | Systems and methods of deciding how to route calls over a voice over internet protocol telephone call routing system |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US33147901P | 2001-11-16 | 2001-11-16 | |
US10/094,671 US7391731B1 (en) | 2002-03-07 | 2002-03-07 | Method for determining best path |
US10/298,208 US7529225B2 (en) | 2001-11-16 | 2002-11-18 | System and method for voice over internet protocol (VoIP) and facsimile over internet protocol (FoIP) calling over the internet |
US10/646,687 US7577131B2 (en) | 2001-11-16 | 2003-08-25 | System and method for voice over internet protocol (VoIP) and facsimile over internet protocol (FoIP) calling over the internet |
US11/365,847 US7843835B2 (en) | 2001-11-16 | 2006-03-02 | System and method of monitoring an internet based telephone call routing system |
US12/883,647 US20110002330A1 (en) | 2001-11-16 | 2010-09-16 | Systems and methods of deciding how to route calls over a voice over internet protocol telephone call routing system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/365,847 Continuation US7843835B2 (en) | 2001-11-16 | 2006-03-02 | System and method of monitoring an internet based telephone call routing system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20110002330A1 true US20110002330A1 (en) | 2011-01-06 |
Family
ID=46323980
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/365,847 Active 2026-04-17 US7843835B2 (en) | 2001-11-16 | 2006-03-02 | System and method of monitoring an internet based telephone call routing system |
US12/883,647 Abandoned US20110002330A1 (en) | 2001-11-16 | 2010-09-16 | Systems and methods of deciding how to route calls over a voice over internet protocol telephone call routing system |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/365,847 Active 2026-04-17 US7843835B2 (en) | 2001-11-16 | 2006-03-02 | System and method of monitoring an internet based telephone call routing system |
Country Status (1)
Country | Link |
---|---|
US (2) | US7843835B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120106401A1 (en) * | 2009-02-12 | 2012-05-03 | Cisco Technology, Inc. | Prevention of voice over ip spam |
US20140269445A1 (en) * | 2013-03-15 | 2014-09-18 | Vonage Network, Llc | Systems and methods for matching call detail records for the same communication generated by different elements of an ip telephony system |
US11053412B1 (en) | 2013-10-11 | 2021-07-06 | Spanx, Inc. | Two-sided garment tape having a non-slip coating and methods of making and using the same |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949443B2 (en) * | 2003-06-11 | 2015-02-03 | Canon Kabushiki Kaisha | Communication apparatus, control method, and computer-usable medium for selecting a network for data transmission |
US20060274723A1 (en) * | 2005-06-01 | 2006-12-07 | Cisco Technology, Inc. | Method and system for customer-managed call routing |
US8547964B2 (en) * | 2006-10-31 | 2013-10-01 | Level 3 Communications, Llc | Automatic termination path configuration |
US8406221B2 (en) * | 2006-10-31 | 2013-03-26 | Level 3 Communications, Llc | Automatic termination path configuration |
US8503642B2 (en) * | 2007-03-01 | 2013-08-06 | NOS Communications, Inc. | System and method for managing a telecommunications network |
US8559984B2 (en) * | 2007-12-04 | 2013-10-15 | Kirusa Inc. | Call completion |
US9705939B2 (en) | 2009-05-20 | 2017-07-11 | Peerless Network, Inc. | Self-healing inter-carrier network switch |
IL201130A (en) * | 2009-09-23 | 2013-09-30 | Verint Systems Ltd | Systems and methods for large-scale link analysis |
US9735896B2 (en) * | 2013-01-16 | 2017-08-15 | Integrity Tracking, Llc | Emergency response systems and methods |
EP2974257B1 (en) * | 2013-03-15 | 2020-09-30 | iBasis, Inc. | Method and system for call routing |
US9866696B2 (en) | 2014-12-17 | 2018-01-09 | Avaya Inc. | Skill change and routing correction |
US10182146B2 (en) | 2016-08-22 | 2019-01-15 | Nice Ltd. | System and method for dynamic redundant call recording |
Citations (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4726056A (en) * | 1986-06-25 | 1988-02-16 | American Telephone And Telegraph Company At&T Bell Laboratories | Shared flexible rating of telecommunications calls |
US5452294A (en) * | 1994-07-05 | 1995-09-19 | Motorola, Inc. | Method and apparatus for adaptive route selection in communication networks |
US5696811A (en) * | 1993-09-22 | 1997-12-09 | Teknekron Infoswitch Corporation | Method and system for automatically monitoring the performance quality of call center service representatives |
US5790546A (en) * | 1994-01-28 | 1998-08-04 | Cabletron Systems, Inc. | Method of transmitting data packets in a packet switched communications network |
US5867566A (en) * | 1993-10-15 | 1999-02-02 | Linkusa Corporation | Real-time billing system for a call processing system |
US5970064A (en) * | 1997-06-12 | 1999-10-19 | Northern Telecom Limited | Real time control architecture for admission control in communications network |
US6049543A (en) * | 1996-12-27 | 2000-04-11 | Motorola, Inc. | Transcoder for use in an ATM-based communications system |
US6084858A (en) * | 1997-01-29 | 2000-07-04 | Cabletron Systems, Inc. | Distribution of communication load over multiple paths based upon link utilization |
US6243373B1 (en) * | 1995-11-01 | 2001-06-05 | Telecom Internet Ltd. | Method and apparatus for implementing a computer network/internet telephone system |
US6269157B1 (en) * | 1995-11-06 | 2001-07-31 | Summit Telecom Systems, Inc. | Bidding for telecommunications traffic with request for service |
US6292481B1 (en) * | 1997-09-16 | 2001-09-18 | Bell Atlantic Network Services, Inc. | Inter-carrier signaling and usage accounting architecture for internet telephony |
US20010028706A1 (en) * | 1998-03-26 | 2001-10-11 | Bell Atlantic Network Services, Inc. | Netwkork planning traffic measurement program |
US20010036172A1 (en) * | 2000-02-03 | 2001-11-01 | Aaron Haskal | Wireless voice over internet protocol communication systems |
US20010050911A1 (en) * | 2000-03-06 | 2001-12-13 | Eastman Jeffrey F. | Method for selecting terminating gateways for an internet telephone call using a tree search |
US6363056B1 (en) * | 1998-07-15 | 2002-03-26 | International Business Machines Corporation | Low overhead continuous monitoring of network performance |
US20020041588A1 (en) * | 2000-08-10 | 2002-04-11 | Gleneck Daniel L. | Method and apparatus for network dialing for voice switching |
US6373929B1 (en) * | 1995-11-06 | 2002-04-16 | Summit Telecom, Inc. | Bidding for telecommunications traffic |
US20020101967A1 (en) * | 1997-08-29 | 2002-08-01 | Chi Eng | Method and a system for settlement of trading accounts |
US6434537B1 (en) * | 1993-10-04 | 2002-08-13 | Lucent Technologies Inc. | Cellular telephone billing management system |
US20020132638A1 (en) * | 2000-12-05 | 2002-09-19 | Ivar Plahte | Mobile branch exchange |
US6473499B1 (en) * | 1999-03-12 | 2002-10-29 | Mediaring.Com Ltd. | Dynamic individual phone rates |
US6480898B1 (en) * | 1999-09-10 | 2002-11-12 | Array Telecom Corporation | System, method, and computer program product for managing a carrier exchange network |
US6480597B1 (en) * | 1998-06-12 | 2002-11-12 | Mci Communications Corporation | Switch controller for a telecommunications network |
US6480588B1 (en) * | 1999-11-08 | 2002-11-12 | Worldcom, Inc. | Methods for providing prepaid telephony service via an internet protocol network system |
US6493437B1 (en) * | 2000-04-26 | 2002-12-10 | Genuity Inc. | Advertising-subsidized PC-telephony |
US6504907B1 (en) * | 1998-03-26 | 2003-01-07 | Verizon Services Corp. | Call detail reporting for lawful surveillance |
US20030012178A1 (en) * | 2001-04-06 | 2003-01-16 | Mussman Harry Edward | Alternate routing of voice communication in a packet-based network |
US20030031134A1 (en) * | 2001-08-01 | 2003-02-13 | Tienyu Chiu | Providing real-time billing information to internet protocol telephones |
US6556565B1 (en) * | 1998-07-01 | 2003-04-29 | Nortel Networks Limited | Internet protocol (IP) telecommunication |
US6631119B1 (en) * | 1998-10-16 | 2003-10-07 | Paradyne Corporation | System and method for measuring the efficiency of data delivery in a communication network |
US6654543B2 (en) * | 1998-02-23 | 2003-11-25 | Kabushiki Kaisha Toshiba | Information storage medium and information recording/playback system |
US6654453B1 (en) * | 1998-12-03 | 2003-11-25 | Bellsouth Intellectual Property Corporation | Method and system for minimizing database structure overhead in handling large volume advanced intelligent network services |
US6668046B1 (en) * | 1999-05-18 | 2003-12-23 | Motorola, Inc. | Method and system for generating a user's telecommunications bill |
US6678267B1 (en) * | 1999-08-10 | 2004-01-13 | Texas Instruments Incorporated | Wireless telephone with excitation reconstruction of lost packet |
US6680935B1 (en) * | 1999-12-30 | 2004-01-20 | At&T Corp. | Anonymous call rejection |
US6687245B2 (en) * | 2001-04-03 | 2004-02-03 | Voxpath Networks, Inc. | System and method for performing IP telephony |
US20040047345A1 (en) * | 2001-11-16 | 2004-03-11 | Ibasis, Inc. | System and method for voice over internet protocol (VoIP) and facsimile over internet protocol (FoIP) calling over the internet |
US6711241B1 (en) * | 1996-06-26 | 2004-03-23 | Verizon Services Corp. | Internet telephone service |
US6721334B1 (en) * | 1999-02-18 | 2004-04-13 | 3Com Corporation | Method and apparatus for packet aggregation in packet-based network |
US6724887B1 (en) * | 2000-01-24 | 2004-04-20 | Verint Systems, Inc. | Method and system for analyzing customer communications with a contact center |
US6760324B1 (en) * | 1999-09-10 | 2004-07-06 | Array Telecom Corporation | Method, system, and computer program product for providing voice over the internet communication |
US6775267B1 (en) * | 1999-12-30 | 2004-08-10 | At&T Corp | Method for billing IP broadband subscribers |
US20040199662A1 (en) * | 2003-04-02 | 2004-10-07 | Karol Mark J. | System and method to improve the resiliency and performance of enterprise networks by utilizing in-built network redundancy |
US20040240381A1 (en) * | 2003-05-30 | 2004-12-02 | Clark Edward Alan | Dynamic management of trunk group members |
US6842427B1 (en) * | 2000-05-09 | 2005-01-11 | Itxc Ip Holdings S.A.R.L. | Method and apparatus for optimizing transmission of signals over a packet switched data network |
US6856616B1 (en) * | 2000-02-29 | 2005-02-15 | 3Com Corporation | System and method for providing service provider configurations for telephones using a central server in a data network telephony system |
US20050052996A1 (en) * | 2003-09-09 | 2005-03-10 | Lucent Technologies Inc. | Method and apparatus for management of voice-over IP communications |
US6868094B1 (en) * | 1999-07-01 | 2005-03-15 | Cisco Technology, Inc. | Method and apparatus for measuring network data packet delay, jitter and loss |
US20050063364A1 (en) * | 1999-06-15 | 2005-03-24 | Altigen Communications, Inc. | Network call-back data capture method and apparatus |
US6904017B1 (en) * | 2000-05-08 | 2005-06-07 | Lucent Technologies Inc. | Method and apparatus to provide centralized call admission control and load balancing for a voice-over-IP network |
US6914898B2 (en) * | 1999-12-24 | 2005-07-05 | Fujitsu Limited | Ip communication network system having a gateway function with communication protocol conversion between a switched circuit network and a packet switched network including data over tcp/ip and voice/fax over rtp |
US6970924B1 (en) * | 1999-02-23 | 2005-11-29 | Visual Networks, Inc. | Methods and apparatus for monitoring end-user experience in a distributed network |
US7068647B2 (en) * | 2001-04-03 | 2006-06-27 | Voxpath Networks, Inc. | System and method for routing IP packets |
US7068646B2 (en) * | 2001-04-03 | 2006-06-27 | Voxpath Networks, Inc. | System and method for performing IP telephony including internal and external call sessions |
US7076048B2 (en) * | 2001-09-21 | 2006-07-11 | Matsushita Electric Industrial Co., Ltd. | Agent-based multimedia communication system that supports web telephony call model |
US7088723B2 (en) * | 2001-02-23 | 2006-08-08 | Samsung Electronics Co., Ltd. | System and method for enhancing a voice channel in voice over internet protocol |
US7136475B1 (en) * | 1999-07-27 | 2006-11-14 | Aspect Communications Corporation | Call Management system with call control from user workstation computers |
US20060268828A1 (en) * | 2005-05-12 | 2006-11-30 | Yahoo! Inc. | Selecting a network based on metrics for real time communication |
US20060280162A1 (en) * | 2005-06-09 | 2006-12-14 | Sbc Knowledge Ventures, L.P. | Proactive congestion control scheme for VoIP traffic on IP routers |
US20070019559A1 (en) * | 2005-07-21 | 2007-01-25 | Netcordia, Inc. | Voice over IP analysis system and method |
US20070041545A1 (en) * | 1994-04-19 | 2007-02-22 | Gainsboro Jay L | Computer-based method and apparatus for controlling, monitoring, recording and reporting telephone access |
US7209473B1 (en) * | 2000-08-18 | 2007-04-24 | Juniper Networks, Inc. | Method and apparatus for monitoring and processing voice over internet protocol packets |
US7308094B1 (en) * | 2001-09-04 | 2007-12-11 | At&T Intellectual Property, Inc. | Processes and systems for screening work orders |
-
2006
- 2006-03-02 US US11/365,847 patent/US7843835B2/en active Active
-
2010
- 2010-09-16 US US12/883,647 patent/US20110002330A1/en not_active Abandoned
Patent Citations (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4726056A (en) * | 1986-06-25 | 1988-02-16 | American Telephone And Telegraph Company At&T Bell Laboratories | Shared flexible rating of telecommunications calls |
US5696811A (en) * | 1993-09-22 | 1997-12-09 | Teknekron Infoswitch Corporation | Method and system for automatically monitoring the performance quality of call center service representatives |
US6434537B1 (en) * | 1993-10-04 | 2002-08-13 | Lucent Technologies Inc. | Cellular telephone billing management system |
US5867566A (en) * | 1993-10-15 | 1999-02-02 | Linkusa Corporation | Real-time billing system for a call processing system |
US5873099A (en) * | 1993-10-15 | 1999-02-16 | Linkusa Corporation | System and method for maintaining redundant databases |
US5790546A (en) * | 1994-01-28 | 1998-08-04 | Cabletron Systems, Inc. | Method of transmitting data packets in a packet switched communications network |
US20070041545A1 (en) * | 1994-04-19 | 2007-02-22 | Gainsboro Jay L | Computer-based method and apparatus for controlling, monitoring, recording and reporting telephone access |
US5452294A (en) * | 1994-07-05 | 1995-09-19 | Motorola, Inc. | Method and apparatus for adaptive route selection in communication networks |
US6243373B1 (en) * | 1995-11-01 | 2001-06-05 | Telecom Internet Ltd. | Method and apparatus for implementing a computer network/internet telephone system |
US6269157B1 (en) * | 1995-11-06 | 2001-07-31 | Summit Telecom Systems, Inc. | Bidding for telecommunications traffic with request for service |
US6373929B1 (en) * | 1995-11-06 | 2002-04-16 | Summit Telecom, Inc. | Bidding for telecommunications traffic |
US20040174880A1 (en) * | 1996-04-18 | 2004-09-09 | White Patrick E. | Internet telephone service |
US6711241B1 (en) * | 1996-06-26 | 2004-03-23 | Verizon Services Corp. | Internet telephone service |
US6049543A (en) * | 1996-12-27 | 2000-04-11 | Motorola, Inc. | Transcoder for use in an ATM-based communications system |
US6084858A (en) * | 1997-01-29 | 2000-07-04 | Cabletron Systems, Inc. | Distribution of communication load over multiple paths based upon link utilization |
US5970064A (en) * | 1997-06-12 | 1999-10-19 | Northern Telecom Limited | Real time control architecture for admission control in communications network |
US20020101967A1 (en) * | 1997-08-29 | 2002-08-01 | Chi Eng | Method and a system for settlement of trading accounts |
US6292481B1 (en) * | 1997-09-16 | 2001-09-18 | Bell Atlantic Network Services, Inc. | Inter-carrier signaling and usage accounting architecture for internet telephony |
US6654543B2 (en) * | 1998-02-23 | 2003-11-25 | Kabushiki Kaisha Toshiba | Information storage medium and information recording/playback system |
US6504907B1 (en) * | 1998-03-26 | 2003-01-07 | Verizon Services Corp. | Call detail reporting for lawful surveillance |
US20010028706A1 (en) * | 1998-03-26 | 2001-10-11 | Bell Atlantic Network Services, Inc. | Netwkork planning traffic measurement program |
US6480597B1 (en) * | 1998-06-12 | 2002-11-12 | Mci Communications Corporation | Switch controller for a telecommunications network |
US6556565B1 (en) * | 1998-07-01 | 2003-04-29 | Nortel Networks Limited | Internet protocol (IP) telecommunication |
US6363056B1 (en) * | 1998-07-15 | 2002-03-26 | International Business Machines Corporation | Low overhead continuous monitoring of network performance |
US6631119B1 (en) * | 1998-10-16 | 2003-10-07 | Paradyne Corporation | System and method for measuring the efficiency of data delivery in a communication network |
US6654453B1 (en) * | 1998-12-03 | 2003-11-25 | Bellsouth Intellectual Property Corporation | Method and system for minimizing database structure overhead in handling large volume advanced intelligent network services |
US6721334B1 (en) * | 1999-02-18 | 2004-04-13 | 3Com Corporation | Method and apparatus for packet aggregation in packet-based network |
US6970924B1 (en) * | 1999-02-23 | 2005-11-29 | Visual Networks, Inc. | Methods and apparatus for monitoring end-user experience in a distributed network |
US6473499B1 (en) * | 1999-03-12 | 2002-10-29 | Mediaring.Com Ltd. | Dynamic individual phone rates |
US6668046B1 (en) * | 1999-05-18 | 2003-12-23 | Motorola, Inc. | Method and system for generating a user's telecommunications bill |
US20050063364A1 (en) * | 1999-06-15 | 2005-03-24 | Altigen Communications, Inc. | Network call-back data capture method and apparatus |
US6868094B1 (en) * | 1999-07-01 | 2005-03-15 | Cisco Technology, Inc. | Method and apparatus for measuring network data packet delay, jitter and loss |
US7136475B1 (en) * | 1999-07-27 | 2006-11-14 | Aspect Communications Corporation | Call Management system with call control from user workstation computers |
US6678267B1 (en) * | 1999-08-10 | 2004-01-13 | Texas Instruments Incorporated | Wireless telephone with excitation reconstruction of lost packet |
US6480898B1 (en) * | 1999-09-10 | 2002-11-12 | Array Telecom Corporation | System, method, and computer program product for managing a carrier exchange network |
US6760324B1 (en) * | 1999-09-10 | 2004-07-06 | Array Telecom Corporation | Method, system, and computer program product for providing voice over the internet communication |
US6480588B1 (en) * | 1999-11-08 | 2002-11-12 | Worldcom, Inc. | Methods for providing prepaid telephony service via an internet protocol network system |
US6914898B2 (en) * | 1999-12-24 | 2005-07-05 | Fujitsu Limited | Ip communication network system having a gateway function with communication protocol conversion between a switched circuit network and a packet switched network including data over tcp/ip and voice/fax over rtp |
US6680935B1 (en) * | 1999-12-30 | 2004-01-20 | At&T Corp. | Anonymous call rejection |
US6775267B1 (en) * | 1999-12-30 | 2004-08-10 | At&T Corp | Method for billing IP broadband subscribers |
US6724887B1 (en) * | 2000-01-24 | 2004-04-20 | Verint Systems, Inc. | Method and system for analyzing customer communications with a contact center |
US20010036172A1 (en) * | 2000-02-03 | 2001-11-01 | Aaron Haskal | Wireless voice over internet protocol communication systems |
US6856616B1 (en) * | 2000-02-29 | 2005-02-15 | 3Com Corporation | System and method for providing service provider configurations for telephones using a central server in a data network telephony system |
US20010050911A1 (en) * | 2000-03-06 | 2001-12-13 | Eastman Jeffrey F. | Method for selecting terminating gateways for an internet telephone call using a tree search |
US6493437B1 (en) * | 2000-04-26 | 2002-12-10 | Genuity Inc. | Advertising-subsidized PC-telephony |
US6904017B1 (en) * | 2000-05-08 | 2005-06-07 | Lucent Technologies Inc. | Method and apparatus to provide centralized call admission control and load balancing for a voice-over-IP network |
US6842427B1 (en) * | 2000-05-09 | 2005-01-11 | Itxc Ip Holdings S.A.R.L. | Method and apparatus for optimizing transmission of signals over a packet switched data network |
US20020041588A1 (en) * | 2000-08-10 | 2002-04-11 | Gleneck Daniel L. | Method and apparatus for network dialing for voice switching |
US7209473B1 (en) * | 2000-08-18 | 2007-04-24 | Juniper Networks, Inc. | Method and apparatus for monitoring and processing voice over internet protocol packets |
US20020132638A1 (en) * | 2000-12-05 | 2002-09-19 | Ivar Plahte | Mobile branch exchange |
US7088723B2 (en) * | 2001-02-23 | 2006-08-08 | Samsung Electronics Co., Ltd. | System and method for enhancing a voice channel in voice over internet protocol |
US7068647B2 (en) * | 2001-04-03 | 2006-06-27 | Voxpath Networks, Inc. | System and method for routing IP packets |
US7068646B2 (en) * | 2001-04-03 | 2006-06-27 | Voxpath Networks, Inc. | System and method for performing IP telephony including internal and external call sessions |
US6687245B2 (en) * | 2001-04-03 | 2004-02-03 | Voxpath Networks, Inc. | System and method for performing IP telephony |
US20030012178A1 (en) * | 2001-04-06 | 2003-01-16 | Mussman Harry Edward | Alternate routing of voice communication in a packet-based network |
US20030031134A1 (en) * | 2001-08-01 | 2003-02-13 | Tienyu Chiu | Providing real-time billing information to internet protocol telephones |
US7308094B1 (en) * | 2001-09-04 | 2007-12-11 | At&T Intellectual Property, Inc. | Processes and systems for screening work orders |
US7076048B2 (en) * | 2001-09-21 | 2006-07-11 | Matsushita Electric Industrial Co., Ltd. | Agent-based multimedia communication system that supports web telephony call model |
US20040047345A1 (en) * | 2001-11-16 | 2004-03-11 | Ibasis, Inc. | System and method for voice over internet protocol (VoIP) and facsimile over internet protocol (FoIP) calling over the internet |
US20040199662A1 (en) * | 2003-04-02 | 2004-10-07 | Karol Mark J. | System and method to improve the resiliency and performance of enterprise networks by utilizing in-built network redundancy |
US20040240381A1 (en) * | 2003-05-30 | 2004-12-02 | Clark Edward Alan | Dynamic management of trunk group members |
US20050052996A1 (en) * | 2003-09-09 | 2005-03-10 | Lucent Technologies Inc. | Method and apparatus for management of voice-over IP communications |
US20060268828A1 (en) * | 2005-05-12 | 2006-11-30 | Yahoo! Inc. | Selecting a network based on metrics for real time communication |
US20060280162A1 (en) * | 2005-06-09 | 2006-12-14 | Sbc Knowledge Ventures, L.P. | Proactive congestion control scheme for VoIP traffic on IP routers |
US20070019559A1 (en) * | 2005-07-21 | 2007-01-25 | Netcordia, Inc. | Voice over IP analysis system and method |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120106401A1 (en) * | 2009-02-12 | 2012-05-03 | Cisco Technology, Inc. | Prevention of voice over ip spam |
US8923279B2 (en) * | 2009-02-12 | 2014-12-30 | Cisco Technology, Inc. | Prevention of voice over IP spam |
US20140269445A1 (en) * | 2013-03-15 | 2014-09-18 | Vonage Network, Llc | Systems and methods for matching call detail records for the same communication generated by different elements of an ip telephony system |
US9420117B2 (en) * | 2013-03-15 | 2016-08-16 | Vonage America Inc. | Systems and methods for matching call detail records for the same communication generated by different elements of an IP telephony system |
US11053412B1 (en) | 2013-10-11 | 2021-07-06 | Spanx, Inc. | Two-sided garment tape having a non-slip coating and methods of making and using the same |
Also Published As
Publication number | Publication date |
---|---|
US7843835B2 (en) | 2010-11-30 |
US20060146783A1 (en) | 2006-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7843835B2 (en) | System and method of monitoring an internet based telephone call routing system | |
US8351421B2 (en) | System and method for voice over internet protocol (VoIP) and facsimile over internet protocol (FoIP) calling over the internet | |
US7577131B2 (en) | System and method for voice over internet protocol (VoIP) and facsimile over internet protocol (FoIP) calling over the internet | |
US8290137B2 (en) | System and method for using exception routing tables in an internet based telephone call routing system | |
US9444738B2 (en) | System and method for monitoring the volume of calls carried by a voice over internet protocol telephone system | |
US8265062B2 (en) | System and method for accomplishing special call treatment in a voice over internet protocol telephone system | |
US20060146784A1 (en) | System and method for monitoring a voice over internet protocol (VoIP) system | |
EP1342348B1 (en) | System for assisting in controlling real-time transport protocol flow through multiple networks via use of a cluster of session routers | |
EP1342350B1 (en) | System and method for assisting in controlling real-time transport protocol flow through multiple networks vida media flow routing | |
US7072303B2 (en) | System and method for assisting in controlling real-time transport protocol flow through multiple networks | |
US20040062210A1 (en) | System and method for providing conference calling over an IP network | |
US8787360B2 (en) | Method and apparatus for processing multiple services per call | |
EP1342351A1 (en) | System and method for assisting in controlling real-time transport protocol flow through multiple networks via screening | |
WO2009129836A1 (en) | Signaling gateway for routing signaling messages | |
US8432895B2 (en) | Intelligent routing of VoIP traffic | |
EP2474153B1 (en) | Automatic termination path configuration | |
EP1686749B1 (en) | System and Method for assisting in controlling real-time transport flow through multiple networks via media flow routing | |
US8787551B2 (en) | Method and apparatus for providing transaction data in a packet network | |
EP2896196B1 (en) | Central services hub and methods for a telecommunications network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |