WO2000052916A1 - Method and system for internet telephony using gateway - Google Patents

Method and system for internet telephony using gateway Download PDF

Info

Publication number
WO2000052916A1
WO2000052916A1 PCT/US2000/005575 US0005575W WO0052916A1 WO 2000052916 A1 WO2000052916 A1 WO 2000052916A1 US 0005575 W US0005575 W US 0005575W WO 0052916 A1 WO0052916 A1 WO 0052916A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
server
internet
route
terminal means
Prior art date
Application number
PCT/US2000/005575
Other languages
French (fr)
Inventor
Michael E. Hayden
Weixin Xia
Original Assignee
Gric Communications, Inc.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Gric Communications, Inc. filed Critical Gric Communications, Inc.
Publication of WO2000052916A1 publication Critical patent/WO2000052916A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1043Gateway controllers, e.g. media gateway control protocol [MGCP] controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1023Media gateways
    • H04L65/103Media gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1033Signalling gateways
    • H04L65/104Signalling gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/0025Provisions for signalling

Definitions

  • the present invention relates to telephone calls placed over the Internet, and more particularly to a system that automatically selects a gateway for terminating the Internet telephone call.
  • U.S. Pat. Nos. 5,867,495 and 5,867,494 illustrate a system that allows telephone calls, data and other multimedia information to be routed through a hybrid network that includes transfer of the information across the Internet.
  • a call initiating gateway terminal receives a normal voice telephone call from a PSTN system and converts it to a digital voice data packet format that can be transmitted over the Internet.
  • the International Telecommunications Union (ITU) standard H.323 sets a protocol to be used in such processes.
  • a call terminating gateway terminal receives the call from the Internet and converts the call back to a format that can be transmitted over the PSTN system. The call is then routed over the PSTN system to the receiving party.
  • ITU International Telecommunications Union
  • the present invention is a system for selecting an available gateway terminal to terminate the Internet telephone call and supply the call initiating gateway terminal with the Internet address of the call terminating gateway terminal.
  • the system is comprised of a first gateway terminal for providing a telephone link with a first telephone set, a second gateway terminal for providing a telephone link with a second telephone set, a route termination server for receiving telephone call information routed through the first gateway terminal, and a route policy program associated with the route termination server for using at least some of the telephone call information to evaluate a plurality of gateway terminals and select one of the plurality of gateway terminals for use as the second gateway terminal.
  • Factors used by the route policy program to select an acceptable second gateway terminal may include operating status of the second gateway terminal, the cost charged by an Internet Service Provider (ISP) for using the second gateway terminal to terminate an Internet telephone call, and the contractual relationship between the ISP who operates the second gateway terminal and another party, such as the ISP who operates the first gateway terminal.
  • ISP Internet Service Provider
  • the route termination server is adapted to transmit server identification information to the first gateway terminal after the route policy program has selected the second gateway terminal, and the server identification information includes information, such as an Internet
  • IP Internet Protocol
  • the first terminal gateway terminal is adapted for exchanging voice telephony data over the Internet directly with the second gateway terminal
  • the second gateway terminal is adapted for exchanging voice telephony data over the Internet directly with the first gateway terminal
  • FIG. 1 is a schematic diagram of an Internet telephone system according to the present invention
  • Fig. 2 is a schematic diagram illustrating the Internet connections utilized in the present invention.
  • Fig. 3 is another schematic diagram of an Internet telephone system according to the present invention.
  • Fig. 1 illustrates an Internet telephone system 10 comprised of a distributed control system 18 and a central control system 22.
  • a home Internet Service Provider (ISP) system 26 a call originating system 14 and a call terminating system 15 can all communicate with the distributed control system over the Internet.
  • the call originating system 14 comprises a plurality of gateway terminals 28, and the call terminating system comprises a plurality of gateway terminals 30.
  • the terminals 28 interact with a gatekeeper server
  • gatekeeper 35 As is explained below, in other embodiments, the gatekeeper servers 34 and 35 are not required.
  • terminals 28 and 30 are commercially available servers referred to as
  • H.323 terminals and the gatekeeper server 34 is a commercially available server referred to as an
  • the terminals 28 and 30 and the gatekeeper server 34 are available from companies such as Lucent Technologies, Cisco Systems and Siemens.
  • the terminals 28 and 30 may or may not all be manufactured by the same company and/or have the same level of functionality. However, in the preferred embodiment, the terminals 28 and 30 all perform to a common compatibility standard, such as the H.323 standard.
  • each of the terminals 28 is capable of making an Internet connection with one of the terminals 30.
  • each of the terminals 30 is capable of making an Internet connection with one of the terminals 28.
  • the terminals 28 and 30 use a combination of software and a local access network (LAN) interface card to establish the Internet connections.
  • the gatekeeper 34 includes application program interface (API) software that controls communication between the call originating system 14 and the distributed control system 18.
  • API application program interface
  • the API software can be present on the gateway terminals 28 and/or gateway terminals 30 so that these terminals can communicate directly with the distributed control system 18.
  • the gateway terminals 28 and 30 include means for establishing an Internet connection with the distributed control system 18, such as a combination of software and a LAN interface card.
  • the numeral 28 is used to designate a gateway terminal that is initiating an Internet telephone call
  • the numeral 30 is used to designate a gateway terminal that is terminating an Internet telephone call.
  • the initiating gateway terminals 28 can also function as the terminating terminals 30, and vice versa.
  • the gateway terminal 28 accepts a PSTN signal, converts it to a digital signal and sends the digital signal over the Internet.
  • the gateway terminal 30 accepts a digital signal from the Internet and converts the digital signal to a PSTN signal that is then transmitted over a PSTN system.
  • a plurality of telephone sets 38 are connected to the terminals 28 and a plurality of telephone sets 39 are connected to the terminals 30.
  • the telephone sets 38 and 39 each have the same capabilities.
  • the different reference numerals are used simply to emphasize that initially one telephone set is used to initiate the Internet telephone call, and a second telephone set is used to receive the telephone call.
  • Fig. 1 illustrates one telephone set being connected to each terminal 28 or 30, each of the terminals 28 and 30 are capable of having a plurality of telephone sets 38 and/or 39 connected to the single terminal 28 or 30 at any given time.
  • the telephone sets 38 and 39 may be any type of telephone having a dialer and capable of permitting voice communication through a publicly switched telephone network (PSTN) or cellular network.
  • PSTN publicly switched telephone network
  • the telephone sets are standard pushbutton telephones used for making and receiving standard telephone calls. These include desktop and wall phones, phones in PBX systems, cordless phones and cell phones, as well as computers equipped to make voice telephone calls.
  • the gatekeeper server 34 is a server that enables a plurality of the terminals 28 to establish an Internet connection with the distributed control system 18.
  • the gatekeeper server 34 includes application program interface (API) software that controls communication between the call originating system 14 and the distributed control system 18.
  • API application program interface
  • the gatekeeper server 35 allows a plurality of the gateway terminals 30 to communicate over the Internet with the gatekeeper server 34 and or with the distributed control system 18.
  • the distributed control system 18 comprises a locator server 42, a route termination server 50 and a collection server 54.
  • the system 18 may also include a phone authentication server 46.
  • the central control system 22 comprises a routing database 56 and a push daemon 58.
  • the central control system 22 also includes an integration server 60 and a settlement database 64 for storing accounting data.
  • the routing database 56 is part of the settlement database 64.
  • the home Internet Service Provider (ISP) system 26 comprises an authentication server
  • the ISP system 26 and the phone authentication server 46 are only needed in the situation where the telephone call is not being initiated through the users home ISP. This situation is referred to as roaming.
  • the gateway terminal 28 are operated by an ISP with whom the user of the phone 38 has an account. In this situation, the user is identified as a customer of the ISP by the call originating system 14.
  • the user of the telephone 38 is not a customer of the ISP that operates the call originating system 14. In this case, the user must be authenticated by the ISP system 26 via the phone authentication server 46.
  • the user of the telephone 38 is a customer of the ISP that operates the ISP system 26, and hence can be authenticated by the ISP system 26.
  • Fig. 2 illustrates the way an Internet telephone call is made using the present invention.
  • the initiating party uses the telephone set 38 to connect to the gateway terminal 28, typically over a telephone line.
  • the gateway terminal 28 establishes a connection with the gatekeeper 34 as is indicated by the arrow 80.
  • the arrow 80 indicates an Internet connection, but it could also be a different type of network connection, such as a local area network (LAN) connection.
  • LAN local area network
  • a connection is established between the gateway terminal 30 and the gatekeeper 35.
  • This is preferably an Internet connection, but it could also be a different type of network connection, such as a local area network (LAN) connection.
  • LAN local area network
  • the gatekeeper 34 uses the API software to establish an Internet connection with the servers within the distributed control system 18 as indicated by the arrow 84.
  • the gatekeeper 34 is eliminated, and the API software runs directly on the gateway terminal 28.
  • the terminal 28 communicates directly with the distributed control system 18, using the API software.
  • the gateway terminal 30 can be configured to communicate directly with the gatekeeper 34, for example if the gatekeeper 35 is eliminated.
  • Certain servers within the distributed control system 18 establish an Internet connection with the central control system 22, and optionally, with the home Internet Service Provider (ISP) system 26, as is indicated by the arrows 88 and 92, respectively. Additionally, an Internet connection can exist between the gatekeeper 35 and the gatekeeper 34 as is indicated by the arrow 93. Ultimately, an Internet connection between the terminals 28 and 30 is established, as is indicated by the arrow 100. The terminal 30 establishes a connection to the telephone set 39, typically over a telephone line, as is indicated by the line 104. The net result of these various connections is that a telephone conversation can take place between the telephones 38 and 39, using the Internet as at least part of the transmission network for the telephone call. Fig.
  • the routing database 56 is located in the central control system 22 and is continuously updated to reflect changes in routing information related to the gateway terminals 30.
  • such information includes, for example, address information, status information, area code/country code information, regional information (e.g. USA, Canada, Europe) and rate information.
  • Address information includes information such as the IP address of the gateway terminal 30 and/or the gatekeeper 35.
  • Status information includes information such as whether or not a particular terminal 30 is available for use (e.g. is the terminal 30 operational or is it undergoing maintenance).
  • Rate information includes information such as the price set by the ISP that operates the call terminating system 15 for using its gateway terminals 30 to complete an Internet telephone call.
  • the routing database 56 is an Oracle database.
  • the push daemon 58 Whenever it is desired to update the route termination server 50, the push daemon 58 establishes an Internet connection (TCP IP) with a collection daemon 110 within the route termination server 50. Once the connection is established, the push daemon 58 transfers the new/updated routing information from the routing database 56 to the collection daemon 110. The collection daemon 110 then transfers the routing information to a routing server 114 within the route termination server 50 using inter-process communication (IPC).
  • IPC inter-process communication
  • a plurality of the route termination servers 50 are shown and denoted as servers 50 A, 50B and 50C.
  • the servers 50 A, 50B and 50C would be located in different geographical locations.
  • server 50A might be located in Asia; server 50B in the United States and server 50C in Europe.
  • the use of the push daemon 58 permits all of the servers 50A-C to be provided with updated routing information simultaneously, so that all of the route termination servers 50 are using the same information to make routing decisions.
  • the routing information only needs to be updated on one database (i.e. the routing database 56) to update all of the plurality of route termination servers 50.
  • the routing database 56 is part of the central control system 22, and hence this is the logical location to be inputting updated routing information.
  • the route termination servers 50A-C are Sun Solaris TM servers, but other types of servers can also be used.
  • Fig. 3 also illustrates that every route termination server 50 includes an http server 118.
  • Each http server 118 comprises software running on a server that interacts with the API software running on the gatekeeper 34 (or with the gateway terminal 28 if a gatekeeper is not used), and with the routing server 114.
  • the function of the http server 118 is to allow information to flow between the routing server 114 and the gatekeeper 34 (or gateway terminal 28) using http protocol.
  • the connection between the http server 118 and the routing server 114 is through Interprocess Communication (IPC), preferably, CORBA (common object request broker architecture).
  • IPC Interprocess Communication
  • CORBA common object request broker architecture
  • the locator 42, the phone authentication server 46 and the collection server 54 all utilize the http server 118 to communicate with the call originating system 14.
  • Fig. 3 also illustrates the situation where the API software is running on the gateway terminal 28. In this simation, information can be transmitted directly between the gateway terminal 28 and the distributed control system 18 without the intervention of a gatekeeper server 34.
  • the various components shown in Figs. 1 and 2 have the following functions.
  • the locator server 42 provides the gatekeeper server 34 with the Internet Protocol (IP) addresses of the servers required to utilize the distributed control system 18. Specifically, locator server 42 provides the server 34 with the IP addresses of the authentication server 70, the route termination server 50 and the collection server 54.
  • IP Internet Protocol
  • locator server 42 provides the server 34 with the IP addresses of the authentication server 70, the route termination server 50 and the collection server 54.
  • the gatekeeper 34 When the gatekeeper 34 is booted up, it sends an input to the locator server 42 that specifies the type of service that is requested (i.e. an Internet telephony); the service release (i.e. the version of the service that is being used); the location of the gatekeeper server 34 (e.g. Indonesia); and a description of the type of the gatekeeper server 34 (referred to as the client type).
  • IP Internet Protocol
  • the client type is preferably in the format of the manufacturer followed by the type of server and the version of the server (e.g. Lucent_Gatekeeper_2.0).
  • the input sent by the gatekeeper server 34 to the locator server 42 is part of the API software.
  • server 42 receives this input from the gatekeeper server 34, server 42 returns an output to the server 34 that provides the IP addresses for the servers required to complete the type of service specified by the input.
  • the output from the locator server 42 to the gatekeeper server 34 in response to the API input described above would include the IP addresses of one or more of the following servers, depending on the situation: the authentication server 46, the route termination server 50 and/or the collection server 54.
  • the gatekeeper server 34 receives an ARQ (ARQ means admission request) from the terminal 28, the gatekeeper server 34 connects with the authentication server 46 to attempt to begin the authentication process for a roaming user.
  • ARQ means admission request
  • the phone authentication server 46 decodes the format of the access number.
  • the access number is a string of digits entered by the person initiating the phone call via the telephone handset.
  • three basic pieces of information that are contained in the access number the organization ID, the account ID and a PIN number.
  • the organization ID identifies the entity that will authenticate the phone call. Generally, this means determining the IP address of the home authentication server 70, for example, by consulting a directory service.
  • Authenticating the phone call means deciding if the phone call is to be allowed or not, and is based on policy decisions such as whether or not the caller has an account and whether the account is paid up or in arrears.
  • the account ID is the digit string used to identify the account holder, analogous to a user ID.
  • the PIN is a password used by the account holder to maintain the security of the account.
  • the input to the phone authentication server 46 includes the client type, the access number and the destination number (which is optional).
  • the client type is the description of the gatekeeper server 34 that was described previously with respect to locator server 42.
  • the output from the phone authentication server 46 back to the gatekeeper server 34 is an instruction that the phone call is either authenticated (allowed) or not authenticated (not allowed).
  • the route termination server 50 selects one or more of the gateway terminals 30 that are candidates to complete a phone call or other service requiring PSTN termination. In other words, the server 50 selects a gateway terminal that will act as a link between the Internet and the PSTN telephone service that will connect the telephone call to the receiving party.
  • the inputs to the route termination server 50 from the gatekeeper 34 are the client type (i.e. gatekeeper type Lucent 3.0), the IP address of the gatekeeper 34 and the destination number, which is the final destination phone number that the terminal 30 needs to call.
  • the destination number usually includes the country code or area code.
  • the local telephone number is generally not used in the routing decision, although the city code might be used.
  • the output from the server 50 is an ordered list of terminals 30 that could function as the link between the Internet and the receiving phone system. In the preferred embodiment, the list includes information about the type of terminal 30 and the Internet (IP) address of each gateway terminal 30 contained in the list.
  • the route termination server 50 is capable of making routing decisions.
  • the routing decisions are based on one or more essential conditions and on one or more policies.
  • a policy is defined by one or more service dimensions.
  • the routing decision is controlled by a computer program running on the routing server 114 referred to as a route policy program.
  • the route policy program generates the prioritized list of terminals 30 (and their associated gatekeepers 35, if relevant) based on data stored on the routing server 114.
  • the essential conditions include the type of service, interoperability and availability.
  • Type of service refers to the type of service requested by the initiating party, such as basic telephone service or fax, etc.
  • Interoperability is the ability of the terminal 30 to work acceptably with a terminal 28 or other device from a different vendor or with a different release level.
  • the H.323 standard is supposed to ensure interoperability between systems from different vendors.
  • Availability refers to whether a terminal 30 is in-service or out-of- service. In the present embodiment, the availability of the terminals 30 is manually inputted into the server 50.
  • this process can be automated, for example through the use of a network management facility that is used to track the availability of the terminals 30 and propagates the stams information to the server 50.
  • the management facility can send the status information to a repository accessible by the server 50.
  • the service dimensions define acceptable terminals 30.
  • Typical service dimensions include the cost of a service and the various service relationships that exist in completing the call.
  • the cost of a service is often based upon the actual phone tariffs between the terminating server (terminal 30) and the destination phone or fax. Sometimes other competitive considerations also come into play.
  • the actual cost payable to the terminating member is that which they specify for telephone number prefix a server is allowed to terminate to.
  • the prefix may be just a country code or include more digits, e.g. area codes.
  • Each member may have different servers in different regions with different area code costs. Therefore, the costs may be both member and region specific.
  • Service relationships relate to various partnership arrangements that may exist between the owner of the terminating server (terminal 30) and the owner of the originating server (terminal 28). For example, members of an alliance may agree to preferentially use the terminals of other alliance members whenever possible.
  • the route termination server 50 must allow for the specification of ISP partner lists which can be associated with an originating server (terminal 28). Once the partner lists are established, policies can be set which define preferences or mandatory use of partner services.
  • Load balancing refers to the practice of routing calls to terminals 30 that are not receiving more than a certain number of calls. Load balancing based upon accurate global information about the state of the terminals 30 is difficult to achieve and requires much communications overhead. This does not scale well as the number of servers grows. However, a simple scheme of having the originating terminals 28 rotate usage based upon their own prior usage can be adequate to achieve some balance between otherwise equal terminating terminals 30.
  • the route termination server 50 can maintain records of how many calls it terminated to each terminal 30 in a period of time (e.g. 30 minutes), and favor using the least recently used terminal 30.
  • the routing decision is based on the following routing criteria, with criteria number one receiving the highest priority: 1. Choose the originating ISP' s mandatory partners' server (if any) to terminate the telephone call.
  • the tables include region_of_price, region_of_service, server_service_region, provider_price, serverJLnfo, isp_information, isp_partnership. Regions are defined separately by region_of_price and region_of_service so that the regions regarding price and service (by server) can be independent. Both tables can define ISP dependent entries and ISP independent entries. In a similar method, server service region table can also handle server dependent service regions of an ISP or server independent service regions.
  • the provider cost is used to define the cost for each terminating ISP for a particular region.
  • the server info, isp_information and isp_partnership table are defined to keep general information of an ISP and the gateway terminals 28 or 30.
  • region_of_price table This table is used to define the price region.
  • Price region is a set of phone regions (country code, area code) that have the same price.
  • the definition can be ISP dependent or ISP independent. This allows an ISP to have its own definition of the regions regarding to the price. An ISP can have both its own definitions for some area while sharing other definitions for other areas with other ISPs.
  • Netcom can define its own price_regions for the USA, e.g, USA_continental_west, USA_continental_middle, USA_continental_east. But it shares the definitions of the pricejregion for the rest of the world with other ISPs. In this case, price_region entries that are ISP dependent will override the definitions that are ISP independent if they overlap. price_region: Mostly, it's a country name, sometimes the country need to be divided into sub-regions.
  • country_code The country code of a phone number. need_area_code 1 - need area code, 0 -do not need area code.
  • area code The area code of a phone number. isp_dependent_entry 1- dependent, 0 - independent
  • isp_id ISP ID of the ISP which this entry/definition belongs to.
  • region_of_service table This table is used to define the service region.
  • Service region is a set of phone regions (country code, area code) that a gateway terminal 30 serves.
  • the service region can be ISP dependent or independent. Similar to "region_of_service" table, the entries for an ISP can be a mixture of ISP dependent entries and ISP independent entries. ISP dependent entries override the definitions of ISP independent entries if they overlap. service region: Mostly, it's a country name, sometimes the country need to be divided into sub-regions. Say, USA_Alaska.
  • country code The country code of a phone number. need area code 1- need area code, 0 -do not need area code
  • area_code The area code of a phone number. isp dependent entry 1- dependent, 0 - independent
  • ISP ID of the ISP which this entry/definition belongs to.
  • provider_price table This table is used to keep the price information provided by a terminating ISP for a given price region (of that terminating ISP): price region: region that this price apply isp_id: ISP that provide this terminating price terminating_price: the price (per minute )of the terminating ISP. effective_date: date that this price applies. expire date: date that this price expires
  • server_id ISP that the server belongs to.
  • server_id the gateway server id of the server server_ip_port: the gateway server ip address and port
  • server ype the server type availability: 0 - out of service, 1 - available quality: the quality index of the server, 1 - 1000 priority: the priority of the server, 1-1000 server group id: used to indicate the group of the server within the isp.
  • Servers with the same server_group_id will have the same service area which is defined in gxxx server service region table.
  • server_group_id range is 1-1000.
  • f) isp_information table. This table is used to keep the ISP information.
  • g) isp_partnership table. This table is used to keep the ISP partnership information, isp id: isp that is to be defined by the partnership with other isps.
  • mandatory_partner_isp_id mandatory partner isp that this isp requires.
  • priority_of_mandatory_partner priority of the mandatory partners if there are more than one. 1-1000. 1000 is the highest.
  • preferred_partner_tag 1 - define the preferred partner here,
  • preferred_partner_isp_id preferred partner isp that this isp requires priority_of_preferred_partner: priority of the preferred partners if there are more than one. 1-1000. 1000 is the highest.
  • interoperable table This table is used to keep the interoperable information of different type of servers (i.e. if the terminals 28 or 30 are different).
  • rts table This table is used by the routing database 56 to keep information about the plurality of route termination servers 50(A-C).
  • server ip The IP address of the RTS server server jport: The port of the RTS server server status: 1- active, 0- not active
  • the collection server 54 collects call detail records (CDR's) for phone servers as well as other accounting data types. Specifically, the server 54 collects, parses, filters, translates and serializes accounting records prior to shipment to the central control system 22. Preferably, the server 54 is designed to be upgraded to accept new accounting data types while in operation.
  • the integration server 60 is a program that loads CDR's into the database 64.
  • the database 64 contains the CDR's as well as administrative other information such as, information about member servers, regional partners and rates.
  • the home authentication server 70 is a server that includes software for making queries to a data file (such as the user data file 74) to determine authorized users of the home ISP.
  • the user data file 74 is a listing of authorized users of the home ISP and account information, such as payment history etc.
  • Preferable functions of the API software include enabling communication between the gatekeeper 34 (or gateway terminal 28) and the distributed control system 18, including setting the appropriate parameters for Internet communication with the system 18, supplying the IP address of the locator server 42 and/or for the route termination server 50, transmitting the telephone number for the receiving phone 39 (including the area code) to the route termination server 50, and receiving the IP address for the gatekeeper 35 and/or receiving gateway terminal 30 from the route termination server 50.
  • the Internet telephone system 10 functions as follows: The initiating party uses one of the telephone sets 38 to access one of the gateway terminals 28. The initiating party uses the keypad of the telephone set 38 to enter data such as an access and/or personal identification number and the destination telephone number. In a roaming situation, the terminal 28 transmits an ARQ to the gatekeeper 34 to begin an authentication process for the phone user. The gatekeeper 34 contacts the authentication server 46 to get the IP address of the home authentication server 70 and to verify that the initiating party is authorized to place the Internet telephone call (i.e. has an account in good standing with an ISP). The authentication server 46 uses the organization identification provided by the initiating party to contact the home authentication server 70.
  • the server 70 If the account ID and PIN provided by the initiating party are verified by the home authentication server 70, then the server 70 returns an instruction to the server 46 that the call is authorized.
  • the server 46 transmits this authorization to the gatekeeper 34 which sends an ACF (ACF stands for admission confirmed) to the terminal 28.
  • ACF ACF stands for admission confirmed
  • the gateway terminal 28 queries the initiating party to enter the telephone number of the destination party (the destination number). Alternatively, if the destination number was already inputted, the gateway terminal 28 makes the destination number available for further use.
  • the destination number is transmitted from the terminal 28 to the gatekeeper 34, and from there to the route termination server 50.
  • the server 50 uses the destination number to generate a list of possible terminating terminals 30.
  • this list includes the IP addresses for a plurality of pairs of gatekeepers 35 and an associated gateway terminal 30.
  • the list may include a first ordered pair of IP addresses comprised of the IP address of a first gatekeeper 35 and a first gateway terminal 30 associated with the first gatekeeper 35.
  • the list would preferably include two to nine additional ordered pairs containing similar IP address information for two to nine additional pairs of gatekeepers and associated gateway terminals.
  • the whole list is then transmitted to the gatekeeper 34 and the gateway terminal 28 attempts to make an Internet connection to the first gatekeeper 35 (or to the first gateway terminal 30 if there is no gatekeeper). If the connection cannot be made to the first gatekeeper, then the second ordered pair of IP addresses is utilized to attempt to make the connection through the second gatekeeper 35 (or to the second gateway terminal 30 if there is no gatekeeper). This process is repeated until a successful connection is made or until every ordered pair on the list has been tried.
  • call setup data such as data required by the H.323 standard, or by another protocol, is transmitted from the gatekeeper 34 to the terminal 30.
  • the terminal 30 processes the call setup data and then transmits a signal to the gatekeeper 34 that the call can be connected through the terminal 30.
  • the gatekeeper 34 transmits a signal to the terminal 28 notifying the terminal 28 that the terminal 30 will terminate the Internet telephone call and giving the terminal 28 the IP address of the terminal 30.
  • the terminal 28 then contacts the terminal 30 directly over the Internet (without going through the gatekeepers 34 or 35) and exchanges signaling, control and voice data with the terminal 30.
  • the terminal 30 uses the destination telephone number and the PSTN network to ring the telephone set 39. If the telephone set 39 is answered, voice communications between the initiating party and the receiving party, over the Internet, can take place.
  • the purpose of the present invention is to provide the route termination server 50 that communicates with the call originating system 14, preferably via the Internet. Whether this communication is through the gatekeeper 34, directly with the gateway terminal 28 or through some other route is immaterial to the present invention. Similarly, it is immaterial to the present invention specifically how the call originating system 14 communicates with the call terminating system 15. Ultimately, the gateway terminals 28 and 30 communicate directly with each other.
  • the present invention can be summarized as a method for controlling Internet telephone calls comprising the steps of transmitting a destination telephone number information from the call originating system 14 to the route termination server 50 over the Internet; inputting the destination telephone number into a route policy program associated with the route termination server; using the destination telephone number information and the route policy program to select a gateway 30 within the call terminating system 15; transmitting server identification information from the route termination server 50 to the call originating system 14 after the route policy means has selected the gateway 30.
  • the server identification information includes information that is used by the call originating system 15 to establish an Internet connection with the gateway terminal 30.
  • the route policy program selects the gateway 30 in the following manner. At least a part of the destination telephone number (e.g. the country code and/or area code and/or city code or other prefix) is used to identify a plurality of potential gateway terminals 30 for terminating the telephone call. The route policy program then prioritizes the plurality of potential gateway terminals 30 based on steps such as choosing the originating ISP's mandatory partners' gateway (if any) to terminate the telephone call; choosing the originating ISP's preferred partners' gateway (if any) to terminate the telephone call; choosing the lowest cost available terminating server to terminate the telephone call; choosing the gateway that has the highest priority to terminate the telephone call; and choosing the gateway that has the highest regional priority to terminate the telephone call.
  • the destination telephone number e.g. the country code and/or area code and/or city code or other prefix

Abstract

A method for controlling Internet telephone calls comprising the steps of transmitting destination telephone number information from a call originating system to a route termination server over the Internet; inputting the destination telephone number information into a route policy program associated with the route termination server; using the destination telephone number information and the route policy program to select a call terminating terminal; and transmitting server identification information from the route termination server to the call originating system after the route policy means has selected the call terminating terminal; the server identification information including information that is used by the call originating system to establish an Internet connection with the call terminating terminal.

Description

METHOD AND SYSTEM FOR INTERNET TELEPHONY USING GATEWAY
TECHNICAL FIELD The present invention relates to telephone calls placed over the Internet, and more particularly to a system that automatically selects a gateway for terminating the Internet telephone call.
BACKGROUND INFORMATION
One of the most exciting recent developments in the Internet is the transmission of voice data packets over the Internet. This development allows the Internet to be used for completing long distance telephone calls. For example, U.S. Pat. Nos. 5,867,495 and 5,867,494 illustrate a system that allows telephone calls, data and other multimedia information to be routed through a hybrid network that includes transfer of the information across the Internet.
In a typical Internet telephone call, a call initiating gateway terminal receives a normal voice telephone call from a PSTN system and converts it to a digital voice data packet format that can be transmitted over the Internet. The International Telecommunications Union (ITU) standard H.323 sets a protocol to be used in such processes. On the receiving end, a call terminating gateway terminal receives the call from the Internet and converts the call back to a format that can be transmitted over the PSTN system. The call is then routed over the PSTN system to the receiving party.
In order to make this technology practical to use, a methodology is needed for determining the availability of call terminating gateway terminals.
SUMMARY OF THE INVENTION Briefly, the present invention is a system for selecting an available gateway terminal to terminate the Internet telephone call and supply the call initiating gateway terminal with the Internet address of the call terminating gateway terminal. The system is comprised of a first gateway terminal for providing a telephone link with a first telephone set, a second gateway terminal for providing a telephone link with a second telephone set, a route termination server for receiving telephone call information routed through the first gateway terminal, and a route policy program associated with the route termination server for using at least some of the telephone call information to evaluate a plurality of gateway terminals and select one of the plurality of gateway terminals for use as the second gateway terminal.
Factors used by the route policy program to select an acceptable second gateway terminal may include operating status of the second gateway terminal, the cost charged by an Internet Service Provider (ISP) for using the second gateway terminal to terminate an Internet telephone call, and the contractual relationship between the ISP who operates the second gateway terminal and another party, such as the ISP who operates the first gateway terminal.
The route termination server is adapted to transmit server identification information to the first gateway terminal after the route policy program has selected the second gateway terminal, and the server identification information includes information, such as an Internet
Protocol (IP) address that is used by the first gateway terminal to establish an Internet connection with the second gateway terminal.
The first terminal gateway terminal is adapted for exchanging voice telephony data over the Internet directly with the second gateway terminal, and the second gateway terminal is adapted for exchanging voice telephony data over the Internet directly with the first gateway terminal.
BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a schematic diagram of an Internet telephone system according to the present invention;
Fig. 2 is a schematic diagram illustrating the Internet connections utilized in the present invention; and
Fig. 3 is another schematic diagram of an Internet telephone system according to the present invention.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Fig. 1 illustrates an Internet telephone system 10 comprised of a distributed control system 18 and a central control system 22. A home Internet Service Provider (ISP) system 26, a call originating system 14 and a call terminating system 15 can all communicate with the distributed control system over the Internet. The call originating system 14 comprises a plurality of gateway terminals 28, and the call terminating system comprises a plurality of gateway terminals 30. In the preferred embodiment, the terminals 28 interact with a gatekeeper server
34, and the terminals 30 interact with a gatekeeper 35. As is explained below, in other embodiments, the gatekeeper servers 34 and 35 are not required.
Preferably the terminals 28 and 30 are commercially available servers referred to as
H.323 terminals and the gatekeeper server 34 is a commercially available server referred to as an
H.323 gatekeeper. The terminals 28 and 30 and the gatekeeper server 34 are available from companies such as Lucent Technologies, Cisco Systems and Siemens. The terminals 28 and 30 may or may not all be manufactured by the same company and/or have the same level of functionality. However, in the preferred embodiment, the terminals 28 and 30 all perform to a common compatibility standard, such as the H.323 standard.
As is explained in more detail below, each of the terminals 28 is capable of making an Internet connection with one of the terminals 30. Similarly, each of the terminals 30 is capable of making an Internet connection with one of the terminals 28. Preferably, the terminals 28 and 30 use a combination of software and a local access network (LAN) interface card to establish the Internet connections. In the preferred embodiment, the gatekeeper 34 includes application program interface (API) software that controls communication between the call originating system 14 and the distributed control system 18. In alternative embodiments, the API software can be present on the gateway terminals 28 and/or gateway terminals 30 so that these terminals can communicate directly with the distributed control system 18. In this case, the gateway terminals 28 and 30 include means for establishing an Internet connection with the distributed control system 18, such as a combination of software and a LAN interface card.
For reference purposes, the numeral 28 is used to designate a gateway terminal that is initiating an Internet telephone call, and the numeral 30 is used to designate a gateway terminal that is terminating an Internet telephone call. However, the initiating gateway terminals 28 can also function as the terminating terminals 30, and vice versa. When functioning as a gateway terminal that initiates an Internet telephone call, the gateway terminal 28 accepts a PSTN signal, converts it to a digital signal and sends the digital signal over the Internet. When functioning as a gateway terminal that terminates an Internet telephone call, the gateway terminal 30 accepts a digital signal from the Internet and converts the digital signal to a PSTN signal that is then transmitted over a PSTN system.
A plurality of telephone sets 38 are connected to the terminals 28 and a plurality of telephone sets 39 are connected to the terminals 30. The telephone sets 38 and 39 each have the same capabilities. The different reference numerals are used simply to emphasize that initially one telephone set is used to initiate the Internet telephone call, and a second telephone set is used to receive the telephone call.
While Fig. 1 illustrates one telephone set being connected to each terminal 28 or 30, each of the terminals 28 and 30 are capable of having a plurality of telephone sets 38 and/or 39 connected to the single terminal 28 or 30 at any given time. The telephone sets 38 and 39 may be any type of telephone having a dialer and capable of permitting voice communication through a publicly switched telephone network (PSTN) or cellular network. In the preferred embodiment the telephone sets are standard pushbutton telephones used for making and receiving standard telephone calls. These include desktop and wall phones, phones in PBX systems, cordless phones and cell phones, as well as computers equipped to make voice telephone calls.
The gatekeeper server 34 is a server that enables a plurality of the terminals 28 to establish an Internet connection with the distributed control system 18. The gatekeeper server 34 includes application program interface (API) software that controls communication between the call originating system 14 and the distributed control system 18. The gatekeeper server 35 allows a plurality of the gateway terminals 30 to communicate over the Internet with the gatekeeper server 34 and or with the distributed control system 18.
The distributed control system 18 comprises a locator server 42, a route termination server 50 and a collection server 54. Optionally, the system 18 may also include a phone authentication server 46. The central control system 22 comprises a routing database 56 and a push daemon 58. Preferably, the central control system 22 also includes an integration server 60 and a settlement database 64 for storing accounting data. Also, in the preferred embodiment, the routing database 56 is part of the settlement database 64. The home Internet Service Provider (ISP) system 26 comprises an authentication server
70 and a database 74 of user data. The ISP system 26 and the phone authentication server 46 are only needed in the situation where the telephone call is not being initiated through the users home ISP. This situation is referred to as roaming. In the non-roaming situation, the gateway terminal 28 are operated by an ISP with whom the user of the phone 38 has an account. In this situation, the user is identified as a customer of the ISP by the call originating system 14.
In contrast, in the roaming situation, the user of the telephone 38 is not a customer of the ISP that operates the call originating system 14. In this case, the user must be authenticated by the ISP system 26 via the phone authentication server 46. The user of the telephone 38 is a customer of the ISP that operates the ISP system 26, and hence can be authenticated by the ISP system 26.
Fig. 2 illustrates the way an Internet telephone call is made using the present invention. The initiating party uses the telephone set 38 to connect to the gateway terminal 28, typically over a telephone line. The gateway terminal 28 establishes a connection with the gatekeeper 34 as is indicated by the arrow 80. Preferably, the arrow 80 indicates an Internet connection, but it could also be a different type of network connection, such as a local area network (LAN) connection. Similarly, a connection is established between the gateway terminal 30 and the gatekeeper 35. This is preferably an Internet connection, but it could also be a different type of network connection, such as a local area network (LAN) connection.
The gatekeeper 34 uses the API software to establish an Internet connection with the servers within the distributed control system 18 as indicated by the arrow 84. In alternative embodiments, the gatekeeper 34 is eliminated, and the API software runs directly on the gateway terminal 28. In such embodiments, the terminal 28 communicates directly with the distributed control system 18, using the API software. Similarly, the gateway terminal 30 can be configured to communicate directly with the gatekeeper 34, for example if the gatekeeper 35 is eliminated.
Certain servers within the distributed control system 18 establish an Internet connection with the central control system 22, and optionally, with the home Internet Service Provider (ISP) system 26, as is indicated by the arrows 88 and 92, respectively. Additionally, an Internet connection can exist between the gatekeeper 35 and the gatekeeper 34 as is indicated by the arrow 93. Ultimately, an Internet connection between the terminals 28 and 30 is established, as is indicated by the arrow 100. The terminal 30 establishes a connection to the telephone set 39, typically over a telephone line, as is indicated by the line 104. The net result of these various connections is that a telephone conversation can take place between the telephones 38 and 39, using the Internet as at least part of the transmission network for the telephone call. Fig. 3 illustrates the way the route termination server 50 is supplied with updated information about routing decisions. The routing database 56 is located in the central control system 22 and is continuously updated to reflect changes in routing information related to the gateway terminals 30. In the preferred embodiment, such information includes, for example, address information, status information, area code/country code information, regional information (e.g. USA, Canada, Europe) and rate information. Address information includes information such as the IP address of the gateway terminal 30 and/or the gatekeeper 35. Status information includes information such as whether or not a particular terminal 30 is available for use (e.g. is the terminal 30 operational or is it undergoing maintenance). Rate information includes information such as the price set by the ISP that operates the call terminating system 15 for using its gateway terminals 30 to complete an Internet telephone call. In the preferred embodiment, the routing database 56 is an Oracle database.
Whenever it is desired to update the route termination server 50, the push daemon 58 establishes an Internet connection (TCP IP) with a collection daemon 110 within the route termination server 50. Once the connection is established, the push daemon 58 transfers the new/updated routing information from the routing database 56 to the collection daemon 110. The collection daemon 110 then transfers the routing information to a routing server 114 within the route termination server 50 using inter-process communication (IPC).
In Fig. 3, a plurality of the route termination servers 50 are shown and denoted as servers 50 A, 50B and 50C. In practice, the servers 50 A, 50B and 50C would be located in different geographical locations. For example, server 50A might be located in Asia; server 50B in the United States and server 50C in Europe. The use of the push daemon 58 permits all of the servers 50A-C to be provided with updated routing information simultaneously, so that all of the route termination servers 50 are using the same information to make routing decisions. Additionally, the routing information only needs to be updated on one database (i.e. the routing database 56) to update all of the plurality of route termination servers 50. Preferably, the routing database 56 is part of the central control system 22, and hence this is the logical location to be inputting updated routing information. In the preferred embodiment, the route termination servers 50A-C are Sun Solaris servers, but other types of servers can also be used.
Fig. 3 also illustrates that every route termination server 50 includes an http server 118. Each http server 118 comprises software running on a server that interacts with the API software running on the gatekeeper 34 (or with the gateway terminal 28 if a gatekeeper is not used), and with the routing server 114. The function of the http server 118 is to allow information to flow between the routing server 114 and the gatekeeper 34 (or gateway terminal 28) using http protocol. The connection between the http server 118 and the routing server 114 is through Interprocess Communication (IPC), preferably, CORBA (common object request broker architecture). Similarly, the locator 42, the phone authentication server 46 and the collection server 54 (all shown in Fig. 1) all utilize the http server 118 to communicate with the call originating system 14.
Fig. 3 also illustrates the situation where the API software is running on the gateway terminal 28. In this simation, information can be transmitted directly between the gateway terminal 28 and the distributed control system 18 without the intervention of a gatekeeper server 34.
The various components shown in Figs. 1 and 2 have the following functions. The locator server 42 provides the gatekeeper server 34 with the Internet Protocol (IP) addresses of the servers required to utilize the distributed control system 18. Specifically, locator server 42 provides the server 34 with the IP addresses of the authentication server 70, the route termination server 50 and the collection server 54. When the gatekeeper 34 is booted up, it sends an input to the locator server 42 that specifies the type of service that is requested (i.e. an Internet telephony); the service release (i.e. the version of the service that is being used); the location of the gatekeeper server 34 (e.g. Indonesia); and a description of the type of the gatekeeper server 34 (referred to as the client type). The client type is preferably in the format of the manufacturer followed by the type of server and the version of the server (e.g. Lucent_Gatekeeper_2.0). The input sent by the gatekeeper server 34 to the locator server 42 is part of the API software. When the locator server 42 receives this input from the gatekeeper server 34, server 42 returns an output to the server 34 that provides the IP addresses for the servers required to complete the type of service specified by the input. For example, the output from the locator server 42 to the gatekeeper server 34 in response to the API input described above, would include the IP addresses of one or more of the following servers, depending on the situation: the authentication server 46, the route termination server 50 and/or the collection server 54.
Subsequently, for example when the gatekeeper server 34 receives an ARQ (ARQ means admission request) from the terminal 28, the gatekeeper server 34 connects with the authentication server 46 to attempt to begin the authentication process for a roaming user. The gatekeeper already knows the IP address of the authentication server 46 because it was supplied previously in the process described above.
The phone authentication server 46 decodes the format of the access number. The access number is a string of digits entered by the person initiating the phone call via the telephone handset. In the preferred embodiment, three basic pieces of information that are contained in the access number: the organization ID, the account ID and a PIN number. The organization ID identifies the entity that will authenticate the phone call. Generally, this means determining the IP address of the home authentication server 70, for example, by consulting a directory service. Authenticating the phone call means deciding if the phone call is to be allowed or not, and is based on policy decisions such as whether or not the caller has an account and whether the account is paid up or in arrears. The account ID is the digit string used to identify the account holder, analogous to a user ID. And the PIN is a password used by the account holder to maintain the security of the account.
In the preferred embodiment, the input to the phone authentication server 46 includes the client type, the access number and the destination number (which is optional). The client type is the description of the gatekeeper server 34 that was described previously with respect to locator server 42. The output from the phone authentication server 46 back to the gatekeeper server 34 is an instruction that the phone call is either authenticated (allowed) or not authenticated (not allowed).
The route termination server 50 selects one or more of the gateway terminals 30 that are candidates to complete a phone call or other service requiring PSTN termination. In other words, the server 50 selects a gateway terminal that will act as a link between the Internet and the PSTN telephone service that will connect the telephone call to the receiving party. In the preferred embodiment, the inputs to the route termination server 50 from the gatekeeper 34, are the client type (i.e. gatekeeper type Lucent 3.0), the IP address of the gatekeeper 34 and the destination number, which is the final destination phone number that the terminal 30 needs to call. The destination number usually includes the country code or area code. The local telephone number is generally not used in the routing decision, although the city code might be used. The output from the server 50 is an ordered list of terminals 30 that could function as the link between the Internet and the receiving phone system. In the preferred embodiment, the list includes information about the type of terminal 30 and the Internet (IP) address of each gateway terminal 30 contained in the list.
In order to create a list of terminals 30 that are candidates to complete a phone call or other service, the route termination server 50 is capable of making routing decisions. The routing decisions are based on one or more essential conditions and on one or more policies. In general, a policy is defined by one or more service dimensions. The routing decision is controlled by a computer program running on the routing server 114 referred to as a route policy program. The route policy program generates the prioritized list of terminals 30 (and their associated gatekeepers 35, if relevant) based on data stored on the routing server 114.
In the preferred embodiment, the essential conditions include the type of service, interoperability and availability. Type of service refers to the type of service requested by the initiating party, such as basic telephone service or fax, etc. Interoperability is the ability of the terminal 30 to work acceptably with a terminal 28 or other device from a different vendor or with a different release level. For Internet telephony, the H.323 standard is supposed to ensure interoperability between systems from different vendors. However, since some phone products may not achieve full interoperability, a compatibility matrix must be maintained by the route termination server 50. Availability refers to whether a terminal 30 is in-service or out-of- service. In the present embodiment, the availability of the terminals 30 is manually inputted into the server 50. However, this process can be automated, for example through the use of a network management facility that is used to track the availability of the terminals 30 and propagates the stams information to the server 50. Alternatively, the management facility can send the status information to a repository accessible by the server 50.
The service dimensions define acceptable terminals 30. Typical service dimensions include the cost of a service and the various service relationships that exist in completing the call. The cost of a service is often based upon the actual phone tariffs between the terminating server (terminal 30) and the destination phone or fax. Sometimes other competitive considerations also come into play. The actual cost payable to the terminating member is that which they specify for telephone number prefix a server is allowed to terminate to. The prefix may be just a country code or include more digits, e.g. area codes. Each member may have different servers in different regions with different area code costs. Therefore, the costs may be both member and region specific. Service relationships relate to various partnership arrangements that may exist between the owner of the terminating server (terminal 30) and the owner of the originating server (terminal 28). For example, members of an alliance may agree to preferentially use the terminals of other alliance members whenever possible. Thus, the route termination server 50 must allow for the specification of ISP partner lists which can be associated with an originating server (terminal 28). Once the partner lists are established, policies can be set which define preferences or mandatory use of partner services.
When all other essential conditions and policies have been satisfied, other factors can be taken into account, such as load balancing. Load balancing refers to the practice of routing calls to terminals 30 that are not receiving more than a certain number of calls. Load balancing based upon accurate global information about the state of the terminals 30 is difficult to achieve and requires much communications overhead. This does not scale well as the number of servers grows. However, a simple scheme of having the originating terminals 28 rotate usage based upon their own prior usage can be adequate to achieve some balance between otherwise equal terminating terminals 30. The route termination server 50 can maintain records of how many calls it terminated to each terminal 30 in a period of time (e.g. 30 minutes), and favor using the least recently used terminal 30.
In the preferred embodiment, the routing decision is based on the following routing criteria, with criteria number one receiving the highest priority: 1. Choose the originating ISP' s mandatory partners' server (if any) to terminate the telephone call.
2. Choose originating ISP's preferred partners' server (if any) to terminate the telephone call.
3. Choose the lowest cost available terminating server to terminate the telephone call.
4. Choose the server that has the highest absolute priority to terminate the telephone call.
5. Choose the server that has the highest regional priority to terminate the telephone call.
Listed below are the types of tables used by the route termination server 50 to keep information that is used in making the routing decision. Information from these tables is used by the route policy program to generate the prioritized list of terminals 30 (and their associated gatekeepers 35, if relevant). The tables include region_of_price, region_of_service, server_service_region, provider_price, serverJLnfo, isp_information, isp_partnership. Regions are defined separately by region_of_price and region_of_service so that the regions regarding price and service (by server) can be independent. Both tables can define ISP dependent entries and ISP independent entries. In a similar method, server service region table can also handle server dependent service regions of an ISP or server independent service regions. The provider cost is used to define the cost for each terminating ISP for a particular region. The server info, isp_information and isp_partnership table are defined to keep general information of an ISP and the gateway terminals 28 or 30. a) region_of_price table. This table is used to define the price region. Price region is a set of phone regions (country code, area code) that have the same price. The definition can be ISP dependent or ISP independent. This allows an ISP to have its own definition of the regions regarding to the price. An ISP can have both its own definitions for some area while sharing other definitions for other areas with other ISPs. For example, Netcom can define its own price_regions for the USA, e.g, USA_continental_west, USA_continental_middle, USA_continental_east. But it shares the definitions of the pricejregion for the rest of the world with other ISPs. In this case, price_region entries that are ISP dependent will override the definitions that are ISP independent if they overlap. price_region: Mostly, it's a country name, sometimes the country need to be divided into sub-regions.
country_code: The country code of a phone number. need_area_code 1 - need area code, 0 -do not need area code.
The following two fields are required if need_area_code =1.
area code: The area code of a phone number. isp_dependent_entry 1- dependent, 0 - independent
Following field is required if isp_dependent_entry=l .
isp_id: ISP ID of the ISP which this entry/definition belongs to.
b) region_of_service table. This table is used to define the service region. Service region is a set of phone regions (country code, area code) that a gateway terminal 30 serves. The service region can be ISP dependent or independent. Similar to "region_of_service" table, the entries for an ISP can be a mixture of ISP dependent entries and ISP independent entries. ISP dependent entries override the definitions of ISP independent entries if they overlap. service region: Mostly, it's a country name, sometimes the country need to be divided into sub-regions. Say, USA_Alaska.
country code: The country code of a phone number. need area code 1- need area code, 0 -do not need area code
Following two fields are required if need area code =1.
area_code: The area code of a phone number. isp dependent entry 1- dependent, 0 - independent
Following field is required if isp_dependent_entry=l.
isp id: ISP ID of the ISP which this entry/definition belongs to.
c) provider_price table. This table is used to keep the price information provided by a terminating ISP for a given price region (of that terminating ISP): price region: region that this price apply isp_id: ISP that provide this terminating price terminating_price: the price (per minute )of the terminating ISP. effective_date: date that this price applies. expire date: date that this price expires
d) server service region table. This table is used to define the regions each gateway server (or servers with same server_group_id!=0 ) serves. If server_group_id=0, the server id is required and this entry applies to that server. If server_group_id!=0, the server id is not required and this entry applies to all the servers that have the same server_group_id of that isp. isp_id: ISP that the server belongs to. server_group_id: 0 - independent. 1-1000 the group id. server id: the gateway terminal 30 id of the server, required if server_group_id=0.
servιce_regιon: the region this server serves regional_priority: The priority of the server serving this region. e) server nfo table. This table is used to keep the gateway terminal 30 information. isp_id: ISP that the server belongs to. server_id: the gateway server id of the server server_ip_port: the gateway server ip address and port, server ype: the server type availability: 0 - out of service, 1 - available quality: the quality index of the server, 1 - 1000 priority: the priority of the server, 1-1000 server group id: used to indicate the group of the server within the isp. Servers with the same server_group_id will have the same service area which is defined in gxxx server service region table. server_group_id range is 1-1000. The server_group_id=0 has the special meaning. Servers with server_group_id=0, will not share the service area definition. Each server need to define their own service area.
f) isp_information table. This table is used to keep the ISP information. g) isp_partnership table. This table is used to keep the ISP partnership information, isp id: isp that is to be defined by the partnership with other isps.
mandatary_partner_tag: 1 - define the mandatary partner here,
0 - not defined as mandatory partner here if mandatory_partner=l, following four fields are required.
mandatory_partner_isp_id: mandatory partner isp that this isp requires. priority_of_mandatory_partner: priority of the mandatory partners if there are more than one. 1-1000. 1000 is the highest. preferred_partner_tag: 1 - define the preferred partner here,
0 - not define the preferred partner here if mandatory_partner=l, following four fields are required.
preferred_partner_isp_id : preferred partner isp that this isp requires priority_of_preferred_partner: priority of the preferred partners if there are more than one. 1-1000. 1000 is the highest.
h) interoperable table. This table is used to keep the interoperable information of different type of servers (i.e. if the terminals 28 or 30 are different). i) rts table. This table is used by the routing database 56 to keep information about the plurality of route termination servers 50(A-C). server ip: The IP address of the RTS server server jport: The port of the RTS server server status: 1- active, 0- not active
The collection server 54 collects call detail records (CDR's) for phone servers as well as other accounting data types. Specifically, the server 54 collects, parses, filters, translates and serializes accounting records prior to shipment to the central control system 22. Preferably, the server 54 is designed to be upgraded to accept new accounting data types while in operation. The integration server 60 is a program that loads CDR's into the database 64. The database 64 contains the CDR's as well as administrative other information such as, information about member servers, regional partners and rates.
The home authentication server 70 is a server that includes software for making queries to a data file (such as the user data file 74) to determine authorized users of the home ISP.
The user data file 74 is a listing of authorized users of the home ISP and account information, such as payment history etc.
Preferable functions of the API software include enabling communication between the gatekeeper 34 (or gateway terminal 28) and the distributed control system 18, including setting the appropriate parameters for Internet communication with the system 18, supplying the IP address of the locator server 42 and/or for the route termination server 50, transmitting the telephone number for the receiving phone 39 (including the area code) to the route termination server 50, and receiving the IP address for the gatekeeper 35 and/or receiving gateway terminal 30 from the route termination server 50.
The Internet telephone system 10 functions as follows: The initiating party uses one of the telephone sets 38 to access one of the gateway terminals 28. The initiating party uses the keypad of the telephone set 38 to enter data such as an access and/or personal identification number and the destination telephone number. In a roaming situation, the terminal 28 transmits an ARQ to the gatekeeper 34 to begin an authentication process for the phone user. The gatekeeper 34 contacts the authentication server 46 to get the IP address of the home authentication server 70 and to verify that the initiating party is authorized to place the Internet telephone call (i.e. has an account in good standing with an ISP). The authentication server 46 uses the organization identification provided by the initiating party to contact the home authentication server 70. If the account ID and PIN provided by the initiating party are verified by the home authentication server 70, then the server 70 returns an instruction to the server 46 that the call is authorized. The server 46 transmits this authorization to the gatekeeper 34 which sends an ACF (ACF stands for admission confirmed) to the terminal 28. In response to the ACF, or initially if this is not a roaming situation, the gateway terminal 28 queries the initiating party to enter the telephone number of the destination party (the destination number). Alternatively, if the destination number was already inputted, the gateway terminal 28 makes the destination number available for further use.
The destination number is transmitted from the terminal 28 to the gatekeeper 34, and from there to the route termination server 50. The server 50 uses the destination number to generate a list of possible terminating terminals 30. Preferably, this list includes the IP addresses for a plurality of pairs of gatekeepers 35 and an associated gateway terminal 30. For example, the list may include a first ordered pair of IP addresses comprised of the IP address of a first gatekeeper 35 and a first gateway terminal 30 associated with the first gatekeeper 35. The list would preferably include two to nine additional ordered pairs containing similar IP address information for two to nine additional pairs of gatekeepers and associated gateway terminals. The whole list is then transmitted to the gatekeeper 34 and the gateway terminal 28 attempts to make an Internet connection to the first gatekeeper 35 (or to the first gateway terminal 30 if there is no gatekeeper). If the connection cannot be made to the first gatekeeper, then the second ordered pair of IP addresses is utilized to attempt to make the connection through the second gatekeeper 35 (or to the second gateway terminal 30 if there is no gatekeeper). This process is repeated until a successful connection is made or until every ordered pair on the list has been tried.
Once the gatekeeper 34 has successfully connected to the gatekeeper 35, call setup data, such as data required by the H.323 standard, or by another protocol, is transmitted from the gatekeeper 34 to the terminal 30. The terminal 30 processes the call setup data and then transmits a signal to the gatekeeper 34 that the call can be connected through the terminal 30. The gatekeeper 34 transmits a signal to the terminal 28 notifying the terminal 28 that the terminal 30 will terminate the Internet telephone call and giving the terminal 28 the IP address of the terminal 30.
The terminal 28 then contacts the terminal 30 directly over the Internet (without going through the gatekeepers 34 or 35) and exchanges signaling, control and voice data with the terminal 30. After the terminals 28 and 30 have established contact over the Internet, the terminal 30 uses the destination telephone number and the PSTN network to ring the telephone set 39. If the telephone set 39 is answered, voice communications between the initiating party and the receiving party, over the Internet, can take place. Referring to Fig. 1 and the discussion presented above, it should be appreciated that the purpose of the present invention is to provide the route termination server 50 that communicates with the call originating system 14, preferably via the Internet. Whether this communication is through the gatekeeper 34, directly with the gateway terminal 28 or through some other route is immaterial to the present invention. Similarly, it is immaterial to the present invention specifically how the call originating system 14 communicates with the call terminating system 15. Ultimately, the gateway terminals 28 and 30 communicate directly with each other.
In general, the present invention can be summarized as a method for controlling Internet telephone calls comprising the steps of transmitting a destination telephone number information from the call originating system 14 to the route termination server 50 over the Internet; inputting the destination telephone number into a route policy program associated with the route termination server; using the destination telephone number information and the route policy program to select a gateway 30 within the call terminating system 15; transmitting server identification information from the route termination server 50 to the call originating system 14 after the route policy means has selected the gateway 30. The server identification information includes information that is used by the call originating system 15 to establish an Internet connection with the gateway terminal 30.
The route policy program selects the gateway 30 in the following manner. At least a part of the destination telephone number (e.g. the country code and/or area code and/or city code or other prefix) is used to identify a plurality of potential gateway terminals 30 for terminating the telephone call. The route policy program then prioritizes the plurality of potential gateway terminals 30 based on steps such as choosing the originating ISP's mandatory partners' gateway (if any) to terminate the telephone call; choosing the originating ISP's preferred partners' gateway (if any) to terminate the telephone call; choosing the lowest cost available terminating server to terminate the telephone call; choosing the gateway that has the highest priority to terminate the telephone call; and choosing the gateway that has the highest regional priority to terminate the telephone call.
Although the present invention has been described in terms of the presently preferred embodiment, it is to be understood that such disclosure is not to be interpreted as limiting. Various alterations and modifications will no doubt become apparent to those skilled in the art after having read the above disclosure. Accordingly, it is intended that the appended claims be interpreted as covering all alterations and modifications as fall within the true spirit and scope of the invention.

Claims

CLAIMS We claim:
1. A system for controlling Internet telephone calls comprising: first terminal means for providing a telephone link with a first telephone set; second terminal means for providing a telephone link with a second telephone set, the first terminal means being adapted for exchanging voice telephony data over the Internet directly with the second terminal means, and the second terminal means being adapted for exchanging voice telephony data over the Internet directly with the first terminal means; route termination server means for receiving telephone call information routed through the first terminal means; and route policy means associated with the route termination server means, for using at least some of the telephone call information to evaluate a plurality of terminals and select one of the plurality of terminals for use as the second terminal means, the route termination server means being adapted to transmit server identification information to the first terminal means after the route policy means has selected the second terminal means, the server identification information including information that is used by the first terminal means to establish an Internet connection with the second terminal means.
2. The system of claim 1 wherein the server identification information comprises the Internet Protocol address of the second terminal means.
3. The system of claim 1 wherein the route policy means uses the telephone number of the receiving phone as a criteria in selecting the second terminal means.
4. The system of claim 1 wherein the route policy means uses the contractual status of the operator of the second terminal means as a criteria in selecting the second terminal means.
5. The system of claim 1 wherein the route policy means uses the price charged by the operator of the second terminal means for using the second terminal means as a criteria in selecting the second terminal means.
6. The system of claim 1 further comprising: a routing database that stores identification information and policy information about a plurality of terminal means, the identification information including the Internet Protocol addresses for each of the plurality of terminal means, and the policy information including the group of the telephone numbers that can be accessed by each of the plurality of terminal means, the contractual status of the operators of each of the plurality of terminal means with the operator of the routing database and the price incurred for using each of the plurality of terminal means; and push daemon means for establishing an Internet connection between the routing database and the route termination server means and for transferring the identification information and policy information from the routing database to the route termination server means.
7. A system for controlling an Internet telephone call comprising: first terminal means for providing a telephone link with a first telephone set; second terminal means for providing a telephone link with a second telephone set, the first terminal means being adapted for exchanging voice telephony data over the Internet directly with the second terminal means, and he second terminal means being adapted for exchanging voice telephony data over the Internet directly with the first terminal means; authentication means for verifying that the initiating party is authorized to use the system based on information sent from the first terminal means to the gatekeeper means and from the gatekeeper means to the authentication means; route termination means for selecting an acceptable second terminal means and for forwarding the IP address of the second terminal means to the gatekeeper means over the Internet; locator means for providing the gatekeeper means with the IP address of the route termination means; and gatekeeper means for establishing a connection between the first terminal means and the locator means.
8. The system of claim 7 further comprising: authentication means for verifying that the initiating party is authorized to use the system based on information sent from the first terminal means to the gatekeeper means and from the gatekeeper means to the authentication means.
9. The system of claim 7 further comprising: collection means for generating CDR's related to the Internet telephone call.
10. A method for controlling Internet telephone calls comprising: transmitting destination telephone number information from a call originating system to a route termination server over the Internet; inputting the destination telephone number information into a route policy program associated with the route termination server; using the destination telephone number information and the route policy program to select a call terminating terminal; and transmitting server identification information from the route termination server to the call originating system after the route policy means has selected the call terminating terminal, the server identification information including information that is used by the call originating system to establish an Internet connection with the call terminating terminal.
11. The method of claim 10 wherein the route policy program uses a contractual status of the operator of the second terminal means as a criteria in selecting the call terminating terminal.
12. The method of claim 10 wherein the route policy program uses the price charged for using the call terminating terminal as a criteria in selecting the call terminating terminal.
PCT/US2000/005575 1999-03-05 2000-03-03 Method and system for internet telephony using gateway WO2000052916A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26311299A 1999-03-05 1999-03-05
US09/263,112 1999-03-05

Publications (1)

Publication Number Publication Date
WO2000052916A1 true WO2000052916A1 (en) 2000-09-08

Family

ID=23000418

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/005575 WO2000052916A1 (en) 1999-03-05 2000-03-03 Method and system for internet telephony using gateway

Country Status (1)

Country Link
WO (1) WO2000052916A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002025889A2 (en) * 2000-09-19 2002-03-28 Nice Systems Ltd. Communication management system for computer network based telephones
EP1345462A1 (en) * 2002-03-02 2003-09-17 Ascom AG Cordless telecommunication system and operating method therefor
US6865604B2 (en) 1998-08-26 2005-03-08 Sts Software Systems Ltd. Method for extracting a computer network-based telephone session performed through a computer network
US6907032B2 (en) 2000-03-06 2005-06-14 Goremote Internet Communications, Inc. Method for selecting terminating gateways for an internet telephone call using a tree search
US7406306B2 (en) * 2001-03-20 2008-07-29 Verizon Business Global Llc Method for billing in a telecommunications network
US7945592B2 (en) 2001-03-20 2011-05-17 Verizon Business Global Llc XML based transaction detail records
US8001594B2 (en) 2001-07-30 2011-08-16 Ipass, Inc. Monitoring computer network security enforcement
US8380840B2 (en) 2001-12-17 2013-02-19 Verizon Business Global Llc Method for recording events in an IP network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997033412A1 (en) * 1996-03-06 1997-09-12 Bear Creek Technologies, Inc. System for interconnecting standard telephony communications equipment to internet protocol networks
WO1998005145A1 (en) * 1996-07-25 1998-02-05 Walter Jay Weingarten Telephonic systems for communication over computer networks
WO1998037665A1 (en) * 1997-02-02 1998-08-27 Fonefriend Systems, Inc. Internet switch box, system and method for internet telephony
EP0881812A2 (en) * 1997-05-26 1998-12-02 Oki Electric Industry Co., Ltd. Telephone communication method capable of relating a telephone terminal and a speech channel IP address at the time of call connection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997033412A1 (en) * 1996-03-06 1997-09-12 Bear Creek Technologies, Inc. System for interconnecting standard telephony communications equipment to internet protocol networks
WO1998005145A1 (en) * 1996-07-25 1998-02-05 Walter Jay Weingarten Telephonic systems for communication over computer networks
WO1998037665A1 (en) * 1997-02-02 1998-08-27 Fonefriend Systems, Inc. Internet switch box, system and method for internet telephony
EP0881812A2 (en) * 1997-05-26 1998-12-02 Oki Electric Industry Co., Ltd. Telephone communication method capable of relating a telephone terminal and a speech channel IP address at the time of call connection

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GAREISS R: "VOICE OVER THE INTERNET", DATA COMMUNICATIONS,US,MCGRAW HILL. NEW YORK, vol. 25, no. 12, 1 September 1996 (1996-09-01), pages 93 - 94,96,98,10, XP000626552, ISSN: 0363-6399 *
HANSSON A ET AL: "PHONE DOUBLER - A STEP TOWARDS INTEGRATED INTERNET AND TELEPHONE COMMUNITIES", ERICSSON REVIEW,SE,ERICSSON. STOCKHOLM, no. 4, 1 January 1997 (1997-01-01), pages 142 - 151, XP000725693, ISSN: 0014-0171 *
THOM G A: "H. 323: THE MULTIMEDIA COMMUNICATIONS STANDARD FOR LOCAL AREA NETWORKS", IEEE COMMUNICATIONS MAGAZINE,US,IEEE SERVICE CENTER. PISCATAWAY, N.J, vol. 34, no. 12, 1 December 1996 (1996-12-01), pages 52 - 56, XP000636454, ISSN: 0163-6804 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7581001B2 (en) 1998-08-26 2009-08-25 Sts Systems Ltd. Communication management system for computer network-based telephones
US6865604B2 (en) 1998-08-26 2005-03-08 Sts Software Systems Ltd. Method for extracting a computer network-based telephone session performed through a computer network
US6871229B2 (en) 1998-08-26 2005-03-22 Sts Software Systems Ltd. Method for storing on a computer network a portion of a communication session between a packet source and a packet destination
US6880004B2 (en) 1998-08-26 2005-04-12 Sts Software Systems Ltd. Method for restoring a portion of a communication session transmitted over a computer network
US6907032B2 (en) 2000-03-06 2005-06-14 Goremote Internet Communications, Inc. Method for selecting terminating gateways for an internet telephone call using a tree search
WO2002025889A2 (en) * 2000-09-19 2002-03-28 Nice Systems Ltd. Communication management system for computer network based telephones
WO2002025889A3 (en) * 2000-09-19 2002-08-15 Nice Systems Ltd Communication management system for computer network based telephones
AU781291B2 (en) * 2000-09-19 2005-05-12 Nice Systems Ltd. Communication management system for computer network based telephones
US7406306B2 (en) * 2001-03-20 2008-07-29 Verizon Business Global Llc Method for billing in a telecommunications network
US7945592B2 (en) 2001-03-20 2011-05-17 Verizon Business Global Llc XML based transaction detail records
US8161080B2 (en) 2001-03-20 2012-04-17 Verizon Business Global Llc XML based transaction detail records
US8315593B2 (en) 2001-03-20 2012-11-20 Verizon Business Global Llc Method for billing in a telecommunications network
US8886682B2 (en) 2001-03-20 2014-11-11 Verizon Patent And Licensing Inc. XML based transaction detail records
US9094408B2 (en) 2001-03-20 2015-07-28 Verizon Business Global Llc Method for recording events in an IP network
US8001594B2 (en) 2001-07-30 2011-08-16 Ipass, Inc. Monitoring computer network security enforcement
US8380840B2 (en) 2001-12-17 2013-02-19 Verizon Business Global Llc Method for recording events in an IP network
EP1345462A1 (en) * 2002-03-02 2003-09-17 Ascom AG Cordless telecommunication system and operating method therefor

Similar Documents

Publication Publication Date Title
US20220070088A1 (en) Determining a Time to Permit a Communications Session to Be Conducted
US6907032B2 (en) Method for selecting terminating gateways for an internet telephone call using a tree search
WO1999014932A2 (en) Gatekeeper for internet clearinghouse communications system
US20140341212A1 (en) Systems and methods of providing communications services
CN1525718B (en) Device for the management of communications by the selection of terminals and the communication medium
WO2007010541A2 (en) Method and system for secure redirection of incoming and outgoing multimedia sessions over a data network
WO2000052916A1 (en) Method and system for internet telephony using gateway
KR101089709B1 (en) A call connection with applications for mobile devices that can connect to the telephone switching equipment and method for the same
RU2253187C2 (en) System and method for local provision of meeting specified regulations for internet service providers
EP1054569A1 (en) Method of establishing a connection across a telephone network and an IP network
CN1795655B (en) A method for updating session initiation information in connection with a telephone call and a terminal device using the method
US20130114590A1 (en) Systems and methods of providing communications services
WO2001067732A2 (en) Method for selecting terminating gateways for an internet telephone call using a tree search
JP4158415B2 (en) Communication control device and communication system
EP1871042A1 (en) Method of optimising access to a communication network
JP2004260451A (en) Call-back management system, call-back management method, and pbx having call-back function
JP2004023626A (en) Device and method for transferring telephone call
EP2939408A1 (en) Systems and methods of providing communications services

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA CN IL IN JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase