WO2001024478A2 - Scaleable communications system - Google Patents

Scaleable communications system Download PDF

Info

Publication number
WO2001024478A2
WO2001024478A2 PCT/US2000/024485 US0024485W WO0124478A2 WO 2001024478 A2 WO2001024478 A2 WO 2001024478A2 US 0024485 W US0024485 W US 0024485W WO 0124478 A2 WO0124478 A2 WO 0124478A2
Authority
WO
WIPO (PCT)
Prior art keywords
client
gateway
communications
providing
server
Prior art date
Application number
PCT/US2000/024485
Other languages
French (fr)
Other versions
WO2001024478A3 (en
Inventor
Wongyu Cho
Hyeonkuk Jeong
Woohyung Kim
Dyunduk Ahn
Doyon Kim
Original Assignee
Dialpad 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 Dialpad Communications, Inc. filed Critical Dialpad Communications, Inc.
Priority to JP2001527532A priority Critical patent/JP2003530732A/en
Priority to CA002343754A priority patent/CA2343754A1/en
Priority to BR0006923-0A priority patent/BR0006923A/en
Priority to EP00970450A priority patent/EP1190550A2/en
Priority to AU79830/00A priority patent/AU7983000A/en
Publication of WO2001024478A2 publication Critical patent/WO2001024478A2/en
Publication of WO2001024478A3 publication Critical patent/WO2001024478A3/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/1033Signalling gateways
    • H04L65/104Signalling gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • 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/1101Session protocols
    • H04L65/1106Call signalling protocols; H.323 and related
    • 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
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/12Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal
    • H04M7/1205Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal where the types of switching equipement comprises PSTN/ISDN equipment and switching equipment of networks other than PSTN/ISDN, e.g. Internet Protocol networks
    • H04M7/1285Details of finding and selecting a gateway for a particular call

Definitions

  • the present invention relates to a method and apparatus for providing video and voice communications.
  • VoIP voice over internet protocol
  • PSTN public switched telephone network
  • VoIP derives from ITU-T H.323, a standard promoted by the VoIP Forum.
  • the H.323 standard defines the format for sending audio, video, data, or fax using IP on the public Internet and within intranets.
  • VoIP uses the well known real-time protocol (RTP) to ensure that communications are provided in a timely manner to avoid noticeable pauses in voice or video communications.
  • RTP real-time protocol
  • public networks it is currently difficult to control the latency. Better service is possible with private networks managed by an enterprise or by an Internet telephony service provider (ITSP).
  • a system which allows at least for audio communications between a personal computer and an audio communications device, such as a telephone.
  • Video, data, and fax communications can also be supported.
  • communications between a personal computer and audio communications device is supported by at least one intermediate device.
  • the personal computer For communications between a personal computer and audio communications device, the personal computer communicates with a entry node, which selects an intermediate server.
  • the personal computer next communicates with the selected intermediate server, which selects a ITSP gateway.
  • the personal computer then communicates with the ITSP gateway.
  • the ITSP gateway provides access to a PSTN which provides access to the destination audio communications device. Thereby the personal computer communicates with the destination audio communications device.
  • One advantage of this embodiment is the software downloaded to the personal computer is less than if the personal computer had to both select an ITSP and establish communication with the ITSP.
  • Another advantage of this embodiment is the architecture that supports VOIP communications is scaleable so that numerous VoIP communications can be facilitated. Another advantages of this embodiment is that it can use many varieties of the H.323 standard for VoIP communications .
  • communications between client and remote client are direct.
  • client and remote client communicate without need for the client to support H.323.
  • considerable software storage is avoided.
  • FIG. 1 schematically depicts an embodiment of the present invention in which a system is used to provide communications between any client and any destination audio communication device.
  • FIG. 2 depicts an exemplary relationship between ITSP gateways of an ITSP network and the system, in accordance with an embodiment of the present invention.
  • FIG. 3 provides a more detailed diagram of a system which is in accordance with an embodiment of the present invention.
  • FIG. 4 provides a flow diagram of a process which is in accordance with an embodiment of the invention.
  • FIG. 5 schematically depicts messages communicated between a client, entry node, a selected intermediate server, and selected ITSP gateway during the process of FIG. 4, in accordance with an embodiment of the invention.
  • FIG. 6 provides a suitable flow diagram of an action of the process of FIG. 4, in accordance with an embodiment of the invention.
  • FIG. 7 depicts a sample web site used in one embodiment, in accordance with an embodiment of the invention.
  • FIG. 8 provides a suitable flow diagram of an action of the process of FIG. 4, in accordance with an embodiment of the invention.
  • FIG. 9 provides a suitable flow diagram of an action of the process of FIG. 4, in accordance with an embodiment of the invention.
  • FIG. 10 schematically depicts the relationship between multiple clients and a data base, in accordance with an embodiment of the invention.
  • FIG. 1 schematically depicts an embodiment of the present invention in which system 100 is used to provide audio communications between any client 105-1 to 105-N and any destination audio communication device 150-1 to 150-Z, such as a conventional telephone.
  • any client 105-1 to 105-N accesses system 100 through a public or private network such as the internet.
  • client 105 refers to any client 105-1 to 105-N unless otherwise specified.
  • destination audio communication device 150 refers to any destination audio communication device 150-1 to 150-Z unless otherwise specified.
  • System 100 communicates with ITSP networks 140-1 to 140-Y using a public or private network such as the internet.
  • ITSP networks 140 refers to any ITSP networks 140-1 to 140-Y unless otherwise specified.
  • At least one ITSP network communicates with a public switched telephone network (PSTN), which allows for communication with the destination audio communication device 150-1 to 150-Z.
  • PSTN public switched telephone network
  • FIG. 2 depicts an exemplary relationship between ITSP gateways 145-1 to 145-N of an ITSP network 140 and system 100.
  • An ITSP network 140 is a private network that typically includes multiple ITSP gateways 145-1 to 145-N. Typically each ITSP gateway has a unique address, such as an IP address. For example, ITSP networks are provided by IDT of New Jersey and QwestTM. Each ITSP gateway is coupled to at least one public switched telephone network (PSTN) 148. PSTNs provide either wireline or wireless access to telephone units such as any of destination audio communication devices 150-1 to 150-Z.
  • PSTN public switched telephone network
  • ITSP gateway 145 refers to any ITSP gateways 145-1 to 145-N unless otherwise specified.
  • each ITSP gateway uses a distinct implementation of the H.323 protocol to support communications .
  • An exemplary embodiment of client 105 is a conventional personal computer (PC) .
  • PC personal computer
  • a suitable PC includes an input/output adapter, central processing unit (e.g., a microprocessor), and a memory.
  • Suitable PCs are, for example, a IBM PS/2 personal computer, Apple Macintosh computer, UNIX-based workstation, or a PDA such as a Palm VII available from 3comTM.
  • the PC further includes a display such as a computer monitor such as a super VGA type or other visual display device .
  • the client 105 typically has resident thereon an operating system such as the Microsoft Windows NTTM or the Microsoft Windows 95TM Operating System (OS) , the IBM OS/2, the Apple MAC OS, or the UNIX OS such as the HP-UX OS.
  • an operating system such as the Microsoft Windows NTTM or the Microsoft Windows 95TM Operating System (OS) , the IBM OS/2, the Apple MAC OS, or the UNIX OS such as the HP-UX OS.
  • the client 105 also includes a speaker and microphone as well as a sound card to support broadcasting of audible information and transmission of audible information, such as speech of the user of the PC.
  • the PC user with access to the internet or a private network can use a web browser such as Microsoft Internet ExplorerTM or Netscape NavigatorTM to access a web page with graphical content.
  • a web site the user enters a universal resource locator (URL) specifying both the server and the specific data ("web page") requested.
  • the URL may specify a hypertext transfer protocol (HTTP) or another transfer protocol for communicating between the server and the browser.
  • HTTP hypertext transfer protocol
  • the URL is transmitted to the host server which stores information corresponding to the URL.
  • client 105 accesses system 100 using a website stored in the network 110.
  • a conventional website server which is part of the network 110, hosts the website accessed by the client 105.
  • a suitable website server is for example a SPARC Server, available from SUN MicrosystemsTM, and uses either Microsoft NT 4.0, IIS, or UNIX operating system.
  • the website server supports requests from the user for features provided by the website.
  • FIG. 3 provides a more detailed diagram of system 100.
  • System 100 includes a entry node 120 that communicates with at least one intermediate server 130- 1 to 130-X using a public or private network such as the internet.
  • Each intermediate server 130-1 to 130-X is capable of communicating with every ITSP gateway 145-1 to 145-N using a public or private network such as the internet.
  • additional entry nodes 120 can be used to support more communication sessions.
  • Entry node 120 of FIG. 3 monitors the activity of intermediate servers and selects an intermediate server to support audio communications from a distinct client 105, such as client 105-1.
  • An exemplary embodiment of the entry node 120 is similar to the web server.
  • the intermediate server selected by the entry node 120 to manage an audio communication from client 105 in turn selects an ITSP gateway that provides access to a PSTN that provides communications with a destination audio communication device 150.
  • Each intermediate server 130-1 to 130-X is similar to the web server.
  • intermediate server 130 refers to any intermediate server 130-1 to 130-X unless otherwise specified.
  • a distinct database server uses a "Log Database" to store information on each user and processes requests for information related to a client 105 or a specific user.
  • a suitable database server is a conventional server. Exemplary communications to and from the database server are provided in Appendix B.
  • Software implementation overview Appendix A describes code segments that are executed by client 105, entry node server 120, and intermediate servers 130-1 to 130-X, in this embodiment.
  • the code segments are used to perform process 400 of FIG. 4 that communications between client 105 and a destination audio communications device.
  • action 405 of process 400 client 105 contacts entry node 120 to initiate use of system 100.
  • Detailed description of action 405 is provided with respect to FIG. 6.
  • action 410 the entry node 120 selects a suitable intermediate server 130. The entry node then identifies the selected intermediate server 130 to the client 105. Detailed description of action 410 is provided with respect to FIG. 8.
  • the selected intermediate server 130 selects and establishes a communications channel with an ITSP gateway 145 and identifies the selected ITSP gateway to the client 105. Subsequently, the client 105 and ITSP gateway 145 communicate directly. As stated earlier, the ITSP gateway 145 communicates with a PSTN, which provides communications with the destination audio communications device 150. Using the ITSP gateway 145, the client 105 communicates with the destination audio communications device 150. Detailed description of action 415 is provided with respect to FIG. 9.
  • the client 105 ends the audio communications session.
  • Detailed description of action 420 is provided below.
  • One advantage of this embodiment is that communication between the client 105 and destination audio communications device 150 is segmented so that selection and establishment of communications channels between the client 105 and ITSP gateway 145 is performed using entry node 120 and intermediate server 130. Thereby the software downloaded to the client 105 is less than if the client had to select and establish connection with an ITSP gateway (so called "thin client" environment) .
  • FIG. 5 schematically depicts messages communicated between the client 105, entry node 120, a selected intermediate server 130, and selected ITSP gateway 145 during process 400 during an exemplary operation of actions 405 to 420.
  • Appendix D provides a description of a suitable protocol used to transmit the messages as well as a description of other messages.
  • FIG. 6 provides a suitable flow diagram of action 405 (FIG. 4).
  • action 610 the user, using a graphical web browser such as Netscape Navigator or Microsoft Explorer, supplies a universal resource locator (URL) or uses a hyperlink to access a web site that includes functionality in accordance with an embodiment of the present invention.
  • the website is written, for example, in HTML, and includes potentially several web pages, each linked using the HTML code.
  • FIG. 7 depicts a sample web site 700.
  • Website 700 includes a graphical touch pad 702, through which alphanumeric characters can be entered; a field 704, into which characters can be entered; caption "address book” 706, that accesses a phone book, for example; and a conventional graphical banner in position 708.
  • web site 700 provides users access to electronic mail, voice mail messages, and faxes.
  • Websites that provide access to electronic mail, voice mail messages, and faxes are well known; see for example, Hotmail.comTM, Excite.comTM, and jfax.comTM.
  • web site 700 and system 100 allow users to respond vocally to voice mail messages, electronic mails, or faxes.
  • the web site server uploads executable files that form "strtp.dll”, “stnet.dll”, “vscp.dll”, and “tsd2.dll” to the PC of client 105.
  • Such files and such *.dll files are listed in Appendix A.
  • action 620 the user enters a destination phone number, for example, into field 704 of the web site 700.
  • caption "address book” 706 of website 700 when caption "address book" 706 of website 700 is selected, a phone book is provided to the user. Selecting a phone number in such phone book initiates a phone call to a destination audio communications device 150.
  • the phone book is stored in a data base with data base server, described earlier. Commands to the data base are described in more detail in Appendix B.
  • a conventional graphical banner ad is displayed in position 708, a conventional graphical banner ad is displayed. Advertisements can be scheduled by use of a service available from Doubleclick of New York, New York, for example. Advertisements can be tailored to the user's interests. By providing advertisements that are targeted to specific users, advertising revenue can be maximized. In this embodiment, advertising revenue can be used to pay for costs of communication with the destination audio communications device 150.
  • the client connects to a entry node 120 using, for example, the TCP/IP protocol.
  • the client communicates at least the destination phone number, User ID, Password, and Session ID to the entry node 120.
  • the User ID identifies a user and identifies information, such as described in Appendix B, associated with the user that is stored by the data base server.
  • the Password is used by the web server to determine whether to permit access to the user's information from the data base.
  • the Session ID is used to track the status of the voice communication .
  • the entry node 120 provides the contact information of a selected intermediate server 130 to the client 105 using, for example, the TCP/IP protocol.
  • action 640 corresponds to the message entitled VEGA Server 504.
  • the contact information includes the IP address and port number of the selected intermediate server.
  • the IP Address is a 4 byte IPv4 address (IP version 4) of the selected intermediate server 130 and the port number is a 2 byte port number that selected intermediate server monitors for future communications from the client 105.
  • the entry node 120 maintains a table of potential intermediate servers 130 as well as the percent of active communications the intermediate server 130 maintains.
  • Appendix C provides a description of a suitable technique whereby the entry node 120 monitors the activity level of intermediate servers 130.
  • the entry node 120 selects an intermediate server 130 that has the lowest activity percentage (e.g., Number of Active Sessions divided by Max Number of Sessions) . If all potential intermediate servers
  • the entry node selects an intermediate server 130 having the lowest associated identification number.
  • Other selection methods can be used, such as random selection.
  • FIG. 8 provides a suitable flow diagram of action 410 (FIG. 4) .
  • Appendix A provides a description of programs used in action 410.
  • the client 105 connects to the selected intermediate server 130 using the IP address and port number, both specified earlier in action 610, using for example, TCP/IP.
  • action 810 corresponds to (second occurring) "TCP Connect 506".
  • the client 105 initializes connection with the selected intermediate server 130 by, for example, issuing a message entitled VSCP SETUP (item 508, FIG. 5) to the selected intermediate server 130 by using for example TCP/IP.
  • Message VSCP SETUP initializes any communications between client 105 and the selected intermediate server 130.
  • the following table provides a description of fields used in message VSCP SETUP.
  • Field Client-side Media Type represents the transmitted media type.
  • Field Client-side Payload Type represents the type of compression algorithm used to encode the selected media type, such as voice, video, or data. Currently, encoded voice payloads are supported.
  • the selected intermediate server 130 determines whether to allow the client 105 to begin a voice or video based communication.
  • the selected intermediate server 130 performs authentication, which includes determining if the client 105 having the specified Userid and password is permitted to use the selected intermediate server 130. If the client 105 is not permitted, the selected intermediate server 130 issues a RELEASE message to the client 105 (not depicted in FIG. 5) . Message RELEASE is described in more detail later. Examples of reasons for not permitting a client 105 include unknown User ID, incorrect password, and unsupported phone number. See below for a description of the message RELEASE. If the client 105 is permitted, then in action 840, the selected intermediate server 130 selects an ITSP gateway (hereafter "selected ITSP gateway”) .
  • selected ITSP gateway hereafter "selected ITSP gateway"
  • An exemplary manner to select an ITSP gateway is to determine a least-cost available route for the destination phone number.
  • Another exemplary manner to select an ITSP gateway 145 is to use a load balancing method whereby the ITSP gateway 145 with the least number of active sessions is selected. Load balancing advantageously lessens the impact of failure of a single ITSP gateway 145.
  • Another exemplary manner to select an ITSP gateway 145 is to select an ITSP gateways based on a general hierarchy. The selected
  • ITSP gateway 145 is used to make a connection with the PSTN 148, through which the destination phone number is connected.
  • the selected ITSP gateway is identified by an IP address.
  • the selected intermediate server In action 850, the selected intermediate server
  • the selected ITSP gateway 145 communicates with the selected ITSP gateway 145.
  • a suitable technique to connect with the selected ITSP gateway 145 uses the H.323 protocol, both well known to those of skill in the art.
  • the Q.931 and H.245 protocols are conventional and described in the H.323 protocol. See for example "Digital Subscriber Signaling System No. 1 Network Layer - ISDN User-Network Interface Layer 3 Specification for Basic Call Control" (ITU-T Recommendation Q.931) and "Line Transmission of Non-Telephone Signals - Control Protocol for Multimedia Communication (ITU-T Recommendation H.245), which are incorporated herein by reference in their entirety.
  • each ITSP gateway 145 may use a distinct style of H.323, the selected intermediate server 130 advantageously can support each distinct style of
  • FIG. 9 schematically depicts operations of action 850 in more detail.
  • the communications of action 850 use the TCP/IP protocol.
  • action 910 a connection with the specified destination audio communications device 150 is established.
  • action 910 further includes the actions 910-1 to 910-7.
  • the selected intermediate server 130 provides the destination PSTN phone number to the selected ITSP gateway 145 to initiate a call using the conventional SETUP message which is defined by the Q.931 protocol.
  • Action 910-1 corresponds to Q.931 SETUP 510 of FIG. 5.
  • the selected intermediate server 130 next issues a message CALLPROCEED to the client (item 512, FIG. 5) .
  • the CALLPROCEED message communicates to the client 105 that the current call request is currently in processing state.
  • message CALLPROCEED includes an 8 byte value that identifies the call.
  • Message CALLPROCEED includes a unique Call Reference Value of, e.g., 8 bytes, that identifies a particular communication session.
  • the selected intermediate server 130 maintains the status of each ongoing session.
  • action 910-2 the selected ITSP gateway 145 dials the destination PSTN phone number.
  • Action 910-2 corresponds to Dial 514 of FIG. 5.
  • action 910-3 the PSTN signals to the selected ITSP Gateway 145 that the destination audio communications device 150 is notifying the destination user of an incoming voice communication.
  • Action 910-3 corresponds to Ringback 516 of FIG. 5.
  • action 910-4 the selected ITSP gateway 145 acknowledges to the selected intermediate server 130 of notification by the PSTN to the destination audio communications device using the conventional ALERT message which is defined by the Q.931 protocol.
  • Action 910-4 corresponds to Q.931 ALERT 518 of FIG. 5.
  • Action 910-5 the selected intermediate server 130 signals to the client that the destination user has been alerted and provides a "Call Reference Value", which is described later.
  • Action 910-5 corresponds to the VSCP ALERT 520 of FIG. 5.
  • action 910-6 the PSTN communicates to the selected ITSP gateway that the destination audio communications device has accepted the communication.
  • Action 910-6 corresponds to Answer 522 of FIG. 5.
  • the selected ITSP gateway 145 communicates to the selected intermediate server 130 that the destination audio communications device has accepted the communication using the conventional connect signal which is defined by the Q.931 protocol.
  • Action 910-7 corresponds to Q.931 CONNECT 524 of FIG. 5.
  • action 920 the communication standard between the selected intermediate server 130 and selected gateway 145 is set.
  • action 920 includes actions 920-1 to 920-2.
  • the selected intermediate server 130 communicates the compression technique specified in action 820 and the media type (e.g., voice, video, data, or fax) to the selected ITSP gateway 145 using a conventional terminal capability set (TCS) message which is defined in the H.245 protocol.
  • TCS terminal capability set
  • the selected ITSP gateway 145 signals receipt of the TCS message of action 935 to the selected intermediate server 130 using the conventional
  • TCS ACK message which is defined in the H.245 protocol.
  • Action 920-2 corresponds to the TCS ACK 528 of FIG. 5.
  • action 930 a communication relationship is established between selected intermediate server 130 and selected ITSP gateway 145.
  • action 930 includes actions 930-1 to 930-3.
  • Action 930-1 corresponds to the H.245
  • the selected ITSP gateway 145 signals receipt of the MSD of action 945 to the selected intermediate server 130 by sending the conventional MSD ACK that is defined in the H.245 protocol.
  • Action 930-2 corresponds to the H.245 MSD
  • the selected intermediate server 130 signals to the selected ITSP gateway 145 that the master-slave process is complete using the conventional master MSD message that is defined in the H.245 protocol.
  • Action 930-3 corresponds to the H.245 MSD
  • a voice channel is established between selected intermediate server 130 and selected
  • action 940 includes actions 940-1 to 940-4.
  • the selected intermediate server 130 signals to the selected ITSP gateway 145 to open a voice channel from the selected intermediate server 130 signals to the selected ITSP gateway 145 using the conventional open logical channel (OLC) as defined in H.245.
  • Action 940-1 corresponds to the H.245 OLC 536 of FIG. 5.
  • the selected ITSP gateway 145 signals receipt of the OLC of action 965 to the selected intermediate server 130 using the conventional OLC ACK of H.245.
  • Action 940-2 corresponds to the H.245 OLC ACK 538 of FIG. 5.
  • the selected ITSP gateway 145 signals to the selected intermediate server to open a voice channel from the selected ITSP gateway to the selected intermediate server 130 signals using the conventional open logical channel (OLC) as defined in H.245.
  • OLC open logical channel
  • Action 940-3 corresponds to the H.245 OLC 540 of FIG. 5.
  • action 940-4 the selected intermediate server 130 signals receipt of the OLC of action 975 to the selected ITSP gateway using the conventional OLC ACK as defined in H.245.
  • Action 940-4 corresponds to the H.245 OLC ACK 542 of FIG. 5.
  • the selected intermediate server 130 notifies the client that a call is being connected by sending a CONNECT message, which corresponds to VSCP CONNECT 544 of FIG. 5.
  • CONNECT corresponds to VSCP CONNECT 544 of FIG. 5.
  • the following table provides a description of CONNECT.
  • the client 105 communicates with the selected ITSP gateway 145 using, for example, the RTP protocol.
  • RTP is an independent standard protocol for encoding and transmitting multimedia streaming that is well known to those of ordinary skill in the art.
  • Action 415 corresponds to RTP Data 546 of FIG. 5.
  • RTP is an independent standard protocol for encoding and transmitting multimedia streaming that is well known to those of ordinary skill in the art.
  • Action 415 corresponds to RTP Data 546 of FIG. 5.
  • other protocols can be used besides RTP, such as any other proprietary media streaming protocol.
  • program "strtp.dll" provides transmission of encoded voice.
  • An exemplary technique to encode and decode voice is available from the DSP Group of Santa Clara, CA.
  • program “tsd2.dll” includes the exemplary technique to encode and decode voice.
  • voice streams are communicated directly between the client and selected ITSP gateway. This direct communication reduces delay of voice packet communications. Such delays introduce noticeable delays in voice communications.
  • brief audio ads can be provided to users through the speaker of the client 105 prior to commencing an audio communication.
  • the audio ads generate revenue that can be used to subsidize costs of communicating with the destination audio communications device 150.
  • a client 105 issues a RELEASE (548, FIG. 5) to the selected intermediate server 130 when a user desires to terminate a talk.
  • the selected intermediate server 130 issues a RELEASE to the client 105 using, for example, TCP/IP, when a call recipient wishes to terminate a talk.
  • the "VEGA Server Source Files" described in Appendix A are used in action 420.
  • One exemplary manner to terminate a voice communication is as follows.
  • the selected intermediate server 130 signals to terminate the H.323 session using for example a H.245 ESC message as defined in the H.245 standard to the selected ITSP gateway (see H.245 ESC 550 of FIG. 5) .
  • the selected ITSP gateway 145 then signals to terminate the H.323 session using for example a H.245 ESC message as defined in the H.245 standard to the selected intermediate server 130 (see H.245 ESC 552 of FIG. 5).
  • the selected ITSP gateway 145 issues a hangup command to the PSTN to discontinue a session (see Hangup 554 of FIG. 5) .
  • the selected intermediate server 130 communicates to the selected ITSP gateway 145 to terminate the session using for example the Q.931 disconnect message defined in the Q.931 protocol (see Q.931 disconnect 556 of FIG. 5) . Thereafter, the selected intermediate server 130 frees resources such as other temporary allocated data structures used for the ended session for another session. Also the selected intermediate server 130 logs the end of the call to a Log Database.
  • the Log Database records the Start Time, End Time,
  • the Log Database is stored by the database server, described earlier and in Appendix B.
  • the client 105 sends the digit to the selected intermediate server 130 using the DTMF message.
  • the selected intermediate server 130 transfers the DTMF message to the selected ITSP gateway using an H.245 message.
  • the following table provides parameters of the DTMF message.
  • communication halt can be generated by either the client, a selected intermediate server 130, or a remote client using VSCP RELEASE. For example, some communications or messages between a client and selected intermediate server 130 or remote client must be received within an allotted time. If the communications or messages are not received within an allotted time, the receiver issues a RELEASE message to the communication/ message sender to discontinue any communication on an initiated or active session.
  • the RELEASE message is used to end a TCP connection.
  • the RELEASE message is used if the selected intermediate server or client do not receive a message, such as SETUP, CALLPROCEED, ALERT, or CONNECT, in an allotted time.
  • a message such as SETUP, CALLPROCEED, ALERT, or CONNECT.
  • the Call Reference Value field identifies a particular communication session.
  • the following table provides potential values and associated meanings for each Reason field.
  • the client and remote client communicate directly using the internet or a private network.
  • the clients communicate using messages TCP connect, VSCP SETUP, VSCP CALLPROCEED, VSCP ALERT, VSCP CONNECT, RTP Data, and
  • each of client and remote client use only the "Client side programs", described in Appendix A.
  • the client initiates communication with a remote client using the TCP connect message, in which the IP address and port of the remote client are specified.
  • the client and remote client are each identified by an IP address and port number.
  • each client does not need to support the full H.323 protocol, which would be necessary to communicate with an ITSP gateway. Rather, for client to remote client communications, only the RTP needs to be supported. Thus, the software needed by each client is minimized. Should the client request communication with a destination audio communications device, a selected intermediate server supports any necessary distinct implementation of the H.323 protocol needed to communicate with any ITSP gateway.
  • a program "vgk.c” is executed by the entry node 120 to support communications between intermediate servers and any client.
  • Program “vgk.c” is used in action 405 (FIGs. 4 and 8).
  • the “Client side programs” are executed by the client 105 and support any communications to and from the client 105. Collectively, the client side programs are used in actions 610 and 620 of FIG. 6.
  • code segments provided in tables entitled “Java files”, “Resource Files”, “Microsoft COM Wrapper Class (Internet Explorer only)", “Microsoft COM (Common Object Model) related files for Internet Explorer”, “Netscape Plugin related files for Netscape Communicator”, “C++ Compiler (Microsoft Visual C++ 6.0) related files”, "C++/Header Files", and "External Dependencies" are uploaded to a client.
  • Java files are used to build the Java applet. It is the main module of the client application. All the direct user interaction and user interface are implemented in these files.
  • Resource files contain the user interface and multimedia object definitions.
  • the COM files are used as an interface between Java Applet and the *.dll files.
  • the Netscape Plugin files allow control the Java applet to control the sound card.
  • Netscape plugin files for Netscape serves the same role that the COM module does for MS Internet Explorer.
  • File "strtp.dll” supports RTP communication and voice encoding/decoding functions between the client 105 and any destination device (for example, PC to phone communications) or any remote client (for example, PC to PC communications) .
  • the "VEGA Server Source Files" are executed by the selected intermediate server and support any communications to and from the selected intermediate server.
  • the programs of the "H.323 Stack Packages" are executed by the selected intermediate server and support any H.323 level communications between the selected intermediate server and the ITSP gateway, The programs of the H.323 Stack Packages are used to support an H.323 protocol based communication in process 850 of FIG. 9.
  • APPENDIX B DATABASE
  • the following commands are issued by the web server to the data base server.
  • the data base server replies using responses, described herein.
  • FIG. 10 schematically depicts the relationship between clients 105-i and 105-j and the data base 1000.
  • the commands are transmitted using TCP/IP.
  • the following table shows commands and associated values .
  • the following table shows the return codes and associated values.
  • the return codes are generated in response to a command.
  • the LOGON command is a command to logon to the selected intermediate server.
  • the LOGON command format is as follows.
  • the Return Codes are any of: RETCODE_SUCCESS, RETCODE_INVALID_USERNAME, RETCODE_INVALID_PASSWORD, or RETCODE_SERVER_ERROR.
  • the Session ID is described earlier.
  • the REGISTER command registers the client's IP Address/Port information to the database.
  • the REGISTER command format is as follows.
  • IP Address IPv4
  • Port Number Port Number of selected intermediate server Override flag is either
  • the Return Code is any of: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, RETCODE_INVALID_IPADDRESS, RETCODE_INVALID_PORT, RETCODE_ALREADY_CONNETED, or RETCODE_SERVER_ERROR .
  • the User ID is described earlier.
  • LOGOFF command specifies which session is to end.
  • the LOGOFF command format is as follows.
  • GETSTATUS command is a request for status information of a user
  • the GETSTATUS command format is as follows.
  • the Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_USERID, RETCODE_INVALID_USERNAME, or RETCODE_SERVER_ERROR.
  • the Status is any of the following: STATUS_NOTCONNECTED (0x00) : User client not registered STATUS_CONNETED (0x01) : User client registered
  • the UNREGISTER command is a request to unregister a client's IP Address/Port information from the database.
  • the UNREGISTER command format is as follows.
  • the ADDUSER command is a request to add a new user to the database and provides associated information on the new user.
  • the ADDUSER command format is as follows .
  • the response to the ADDUSER command is the following format.
  • the Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_USERNAME, RETCODE_INVALID_PASSWORD, RETCODE_ALREADY_EXIST, or RETCODE SERVER ERROR.
  • the DELETEUSER command is a request to delete a user from the database.
  • the DELETEUSER command format is as follows.
  • the response to the DELETEUSER command is the following format.
  • the Return Code is any of RETCODE_SUCCESS, RETCODE INVALID SESSIONID, or RETCODE SERVER ERROR.
  • the MODIFYUSER command is a request to modify user information in the database.
  • the MODIFYUSER command format is as follows. Any field that is not to change is 0x00.
  • the response to the MODIFYUSER command is the following format.
  • the Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, or RETCODE SERVER ERROR,
  • the GETUSERINFO command is a request to retrieve user information from the database.
  • the GETUSERINFO command format is as follows.
  • the response to the GETUSERINFO command is the following format.
  • the Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, or RETCODE SERVER ERROR.
  • the ADDCONTACTINFO command is a request to add a new contact to the user' s contact list stored the database.
  • the ADDCONTACTINFO command format is as follows .
  • Phone Types are any of the following: HOME_PHONE: Home Phone Number WORK_PHONE: Work Phone Number CELL_PHONE: Cell Phone Number PAGER_PHONE: Pager Number OTHER PHONE: Other Number
  • the response to the ADDCONTACTINFO command is the following format .
  • the Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, RETCODE_INVALID_USERNAME, RETCODE_ALREADY_EXIST, or RETCODE_SERVER_ERROR .
  • the Contact ID is a 4 byte Contact Identifier.
  • the DELETECONTACTINFO command is a request to delete contact information from a user' s contact list that is stored in the database.
  • the DELETECONTACTINFO command format is as follows.
  • the response to the DELETECONTACTINFO command is the following format.
  • the Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, RETCODE_INVALID_CONTACTID, RETCODE_NO_OWNER, or RETCODE SERVER ERROR.
  • the MODIFYCONTACTINFO command is a request to modify a contact in a user's contact list that is stored in the database.
  • the MODIFYCONTACTINFO command format is as follows.
  • the response to the MODIFYCONTACTINFO command is a one octet "Return Code”.
  • the Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, RETCODE_INVALID_CONTACTID, RETCODE_INVALID_USERNAME, RETCODE_ALREADY_EXIST, RETCODE_NO_OWNER, or RETCODE SERVER ERROR.
  • the GETCONTACTLIST command is a request for a list of contacts from the user' s contact list based on provided search criteria.
  • the GETCONTACTLIST command format is as follows.
  • the response to GETCONTACTLIST is a header followed by multiple contact entries.
  • the Phone Types are any of the following HOME_PHONE (Home Phone Number) , WORK_PHONE (Work Phone Number) , CELL_PHONE (Cell Phone Number) , PAGER_PHONE (Pager Number), OTHER_PHONE (Other Number) .
  • the GETCONTACTINFO command is a request for detailed information of a specific contact entry.
  • the GETCONTACTINFO command format is as follows.
  • the response to the GETCONTACTINFO command is the following format.
  • the Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, RETCODE_INVALID_USERID, RETCODE_INVALID_CONTACTID, RETCODE NO OWNER, RETCODE SERVER ERROR
  • the Phone Types are any of the following: HOME_PHONE (Home Phone Number) WORK_PHONE (Work Phone Number) CELL_PHONE (Cell Phone Number) PAGER_PHONE (Pager Number) OTHER PHONE (Other Number)
  • the FINDUSERNAME command is a request for a list of users that match the first, last name and email.
  • the FINDUSERNAME command format is as follows.
  • the response to the FINDUSERNAME command includes a header followed by multiple contact entries.
  • Each of User Name, First Name, Last Name are Null- terminated ASCII strings.
  • APPENDIX C The entry node maintains the IP Address, Port numbers, and the status information of selected intermediate servers. The entry node further routes a client's call request to an intermediate server based on the status information.
  • the entry node can be used for disabling or enabling intermediate servers.
  • a backup intermediate server can easily replace the dysfunctional intermediate server.
  • the entry node maintains a TABLE of information for all the intermediate servers.
  • the entry node periodically broadcasts a REPORT_REQUEST packet to the intermediate servers, and all the intermediate servers register/report their information in response to the packet. Because the REPORT_REQUEST packet is broadcasted periodically, new intermediate servers can be added without having to restart the entry node.
  • the REPORT_REQUEST is transmitted using UDP (User Datagram Protocol) over IP.
  • the REPORT_REQUEST packet includes an IP address and a port number.
  • the IP Address is, e.g., a 4 byte IPv4 Address of the entry node.
  • the port number is, e.g., a 2 byte port number that the entry node listens for response.
  • a SERVER_REPORT packet is transmitted by an intermediate server in response to the REPORT_REQUEST . It contains the IP Address/Port information and the load information of the intermediate server 130.
  • the SERVER_REPORT is transmitted using UDP/TCP/IP.
  • the IP Address is, e.g., a 4 byte IPv4 Address of the corresponding intermediate server.
  • the Port Number is, e.g., 2 byte port number that the corresponding intermediate server listens for communications from the client. This port number is passed to the client upon request by the entry node.
  • the Number of Active Sessions is the number of calls that the corresponding intermediate server is handling. This information is used by the entry node for distributing the client's call requests.
  • the Max Number of Sessions is a maximum number of concurrent calls that the corresponding intermediate server is capable of handling.
  • messages are transmitted using TCP/IP.
  • TCP/IP Transmission Control Protocol/IP
  • the following conventional TCP header is used to transport all messages .
  • the Protocol Discriminator species byte orders are the order used for forming a 'word'. Some platforms use the higher byte first, and some use the lower byte first. For example, to express the number '1', it is 00 01 on some systems, and 01 00 on others. Byte orders are different in different CPU platforms. For example, Sun SPARC uses different byte order from Intel's. For network applications, which typically would pass data to another heterogeneous system, it is important to let the remote party which byte order scheme is being used.
  • the Protocol Discriminator is 0x5354.
  • the Content Length represents a total length of the packet, i.e., the header and + message content together.
  • the Message Type field species the type of message.
  • the following tables provides associated values and messages .
  • the Version Info field specifies the Version Number of the message. Because the message protocol definitions may change in the future, by using the version info, the receiver can reject a message if it is a higher version than it supports.
  • STATUS The client uses the STATUS message to report current status information to the selected intermediate server.
  • the following table provides parameters of the STATUS message.
  • the Call Reference Value field specifies a unique identifier (number) of the call session.
  • the Status field species the status of the client. For example a value of 0x00 species the connection to the client is alive

Abstract

A system that supports audio, video, data, and fax communications between a source personal computer and an audio communications device, such as a telephone or a destination personal computer. The system provides for communications first with an entry node, which selects an intermediate server. The selected intermediate server selects an ITSP gateway, for example, which provides access to the audio communications device. The selected intermediate server initiates voice or video communications using for example, the H.323 standard, with the ITSP gateway. The selected intermediate server then informs the source personal computer to communicate directly with the ITSP gateway. Thereby, the system scaleably supports voice or video communications in a 'thin-client' environment.

Description

SCALEABLE COMMUNICATIONS SYSTEM
BACKGROUND
1. Field of the Invention
The present invention relates to a method and apparatus for providing video and voice communications.
2. Discussion of Related Art
VoIP (voice over internet protocol (IP) ) describes a set of facilities for managing the delivery of voice information using the public Internet or private intranets or networks, rather than using the traditional circuit-committed protocols of the public switched telephone network (PSTN) . A major advantage of VoIP and internet telephony is that it avoids the tolls charged by commercial telephone service providers such as MCI™ or AT&T™.
VoIP derives from ITU-T H.323, a standard promoted by the VoIP Forum. The H.323 standard defines the format for sending audio, video, data, or fax using IP on the public Internet and within intranets. In addition to IP, VoIP uses the well known real-time protocol (RTP) to ensure that communications are provided in a timely manner to avoid noticeable pauses in voice or video communications. Using public networks, it is currently difficult to control the latency. Better service is possible with private networks managed by an enterprise or by an Internet telephony service provider (ITSP).
Conventional techniques that support VoIP communication require voluminous software to be downloaded to a user's personal computer. With the low speed communications links, users require much time to download the software. For personal computers with low memory storage capability, such as personal digital assistants (PDAs), VoIP communications may not be feasible given the volume of software needed.
SUMMARY
In accordance with an embodiment of the present invention, a system is provided which allows at least for audio communications between a personal computer and an audio communications device, such as a telephone. Video, data, and fax communications can also be supported.
In one embodiment of the present invention, communications between a personal computer and audio communications device is supported by at least one intermediate device. For communications between a personal computer and audio communications device, the personal computer communicates with a entry node, which selects an intermediate server. The personal computer next communicates with the selected intermediate server, which selects a ITSP gateway. The personal computer then communicates with the ITSP gateway. The ITSP gateway provides access to a PSTN which provides access to the destination audio communications device. Thereby the personal computer communicates with the destination audio communications device.
One advantage of this embodiment is the software downloaded to the personal computer is less than if the personal computer had to both select an ITSP and establish communication with the ITSP.
Another advantage of this embodiment is the architecture that supports VOIP communications is scaleable so that numerous VoIP communications can be facilitated. Another advantages of this embodiment is that it can use many varieties of the H.323 standard for VoIP communications .
In one embodiment, for client to remote client communications, communications between client and remote client are direct. In this embodiment, client and remote client communicate without need for the client to support H.323. Thus considerable software storage is avoided. Various embodiments of the present invention will be more fully understood in light of the following detailed description taken together with the accompanying drawings .
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 schematically depicts an embodiment of the present invention in which a system is used to provide communications between any client and any destination audio communication device. FIG. 2 depicts an exemplary relationship between ITSP gateways of an ITSP network and the system, in accordance with an embodiment of the present invention.
FIG. 3 provides a more detailed diagram of a system which is in accordance with an embodiment of the present invention.
FIG. 4 provides a flow diagram of a process which is in accordance with an embodiment of the invention.
FIG. 5 schematically depicts messages communicated between a client, entry node, a selected intermediate server, and selected ITSP gateway during the process of FIG. 4, in accordance with an embodiment of the invention.
FIG. 6 provides a suitable flow diagram of an action of the process of FIG. 4, in accordance with an embodiment of the invention. FIG. 7 depicts a sample web site used in one embodiment, in accordance with an embodiment of the invention.
FIG. 8 provides a suitable flow diagram of an action of the process of FIG. 4, in accordance with an embodiment of the invention.
FIG. 9 provides a suitable flow diagram of an action of the process of FIG. 4, in accordance with an embodiment of the invention. FIG. 10 schematically depicts the relationship between multiple clients and a data base, in accordance with an embodiment of the invention.
Note that use of the same reference numbers in different figures indicates the same or like elements.
DETAILED DESCRIPTION
Incorporated materials
The following table provides a list of topics and materials related to such topics. The materials are incorporated herein by reference in their entirety.
Figure imgf000006_0001
- Control Protocol for Multimedia Communication (ITU-T Recommendation H.245'
Client to destination communications device Overview
FIG. 1 schematically depicts an embodiment of the present invention in which system 100 is used to provide audio communications between any client 105-1 to 105-N and any destination audio communication device 150-1 to 150-Z, such as a conventional telephone. In this embodiment, any client 105-1 to 105-N accesses system 100 through a public or private network such as the internet. Hereafter client 105 refers to any client 105-1 to 105-N unless otherwise specified. Hereafter destination audio communication device 150 refers to any destination audio communication device 150-1 to 150-Z unless otherwise specified.
System 100 communicates with ITSP networks 140-1 to 140-Y using a public or private network such as the internet. Hereafter ITSP networks 140 refers to any ITSP networks 140-1 to 140-Y unless otherwise specified. At least one ITSP network communicates with a public switched telephone network (PSTN), which allows for communication with the destination audio communication device 150-1 to 150-Z.
FIG. 2 depicts an exemplary relationship between ITSP gateways 145-1 to 145-N of an ITSP network 140 and system 100. An ITSP network 140 is a private network that typically includes multiple ITSP gateways 145-1 to 145-N. Typically each ITSP gateway has a unique address, such as an IP address. For example, ITSP networks are provided by IDT of New Jersey and Qwest™. Each ITSP gateway is coupled to at least one public switched telephone network (PSTN) 148. PSTNs provide either wireline or wireless access to telephone units such as any of destination audio communication devices 150-1 to 150-Z. Hereafter ITSP gateway 145 refers to any ITSP gateways 145-1 to 145-N unless otherwise specified.
Typically, each ITSP gateway uses a distinct implementation of the H.323 protocol to support communications .
Interface between client 105 and system 100 An exemplary embodiment of client 105 is a conventional personal computer (PC) . A suitable PC includes an input/output adapter, central processing unit (e.g., a microprocessor), and a memory. Suitable PCs are, for example, a IBM PS/2 personal computer, Apple Macintosh computer, UNIX-based workstation, or a PDA such as a Palm VII available from 3com™. The PC further includes a display such as a computer monitor such as a super VGA type or other visual display device .
The client 105 typically has resident thereon an operating system such as the Microsoft Windows NT™ or the Microsoft Windows 95™ Operating System (OS) , the IBM OS/2, the Apple MAC OS, or the UNIX OS such as the HP-UX OS.
The client 105 also includes a speaker and microphone as well as a sound card to support broadcasting of audible information and transmission of audible information, such as speech of the user of the PC.
The PC user with access to the internet or a private network can use a web browser such as Microsoft Internet Explorer™ or Netscape Navigator™ to access a web page with graphical content. To specify a web site, the user enters a universal resource locator (URL) specifying both the server and the specific data ("web page") requested. The URL may specify a hypertext transfer protocol (HTTP) or another transfer protocol for communicating between the server and the browser. Using the internet, the URL is transmitted to the host server which stores information corresponding to the URL. In one embodiment, client 105 accesses system 100 using a website stored in the network 110. A conventional website server, which is part of the network 110, hosts the website accessed by the client 105. A suitable website server is for example a SPARC Server, available from SUN Microsystems™, and uses either Microsoft NT 4.0, IIS, or UNIX operating system.
An exemplary website is described in more detail later with respect to FIG. 7. The website server supports requests from the user for features provided by the website.
System 100
FIG. 3 provides a more detailed diagram of system 100. System 100 includes a entry node 120 that communicates with at least one intermediate server 130- 1 to 130-X using a public or private network such as the internet. Each intermediate server 130-1 to 130-X is capable of communicating with every ITSP gateway 145-1 to 145-N using a public or private network such as the internet. Of course, additional entry nodes 120 can be used to support more communication sessions.
Entry node 120 of FIG. 3 monitors the activity of intermediate servers and selects an intermediate server to support audio communications from a distinct client 105, such as client 105-1. An exemplary embodiment of the entry node 120 is similar to the web server. The intermediate server selected by the entry node 120 to manage an audio communication from client 105 in turn selects an ITSP gateway that provides access to a PSTN that provides communications with a destination audio communication device 150. Each intermediate server 130-1 to 130-X is similar to the web server. Hereafter intermediate server 130 refers to any intermediate server 130-1 to 130-X unless otherwise specified.
Database server
In one embodiment, a distinct database server (not depicted) uses a "Log Database" to store information on each user and processes requests for information related to a client 105 or a specific user. A suitable database server is a conventional server. Exemplary communications to and from the database server are provided in Appendix B.
Software implementation overview Appendix A, an integral part of this disclosure, describes code segments that are executed by client 105, entry node server 120, and intermediate servers 130-1 to 130-X, in this embodiment. The code segments are used to perform process 400 of FIG. 4 that communications between client 105 and a destination audio communications device.
In action 405 of process 400, client 105 contacts entry node 120 to initiate use of system 100. Detailed description of action 405 is provided with respect to FIG. 6.
In action 410, the entry node 120 selects a suitable intermediate server 130. The entry node then identifies the selected intermediate server 130 to the client 105. Detailed description of action 410 is provided with respect to FIG. 8.
In action 415, the selected intermediate server 130 selects and establishes a communications channel with an ITSP gateway 145 and identifies the selected ITSP gateway to the client 105. Subsequently, the client 105 and ITSP gateway 145 communicate directly. As stated earlier, the ITSP gateway 145 communicates with a PSTN, which provides communications with the destination audio communications device 150. Using the ITSP gateway 145, the client 105 communicates with the destination audio communications device 150. Detailed description of action 415 is provided with respect to FIG. 9.
In action 420, the client 105 ends the audio communications session. Detailed description of action 420 is provided below. One advantage of this embodiment is that communication between the client 105 and destination audio communications device 150 is segmented so that selection and establishment of communications channels between the client 105 and ITSP gateway 145 is performed using entry node 120 and intermediate server 130. Thereby the software downloaded to the client 105 is less than if the client had to select and establish connection with an ITSP gateway (so called "thin client" environment) .
Exemplary Messages
FIG. 5 schematically depicts messages communicated between the client 105, entry node 120, a selected intermediate server 130, and selected ITSP gateway 145 during process 400 during an exemplary operation of actions 405 to 420. Appendix D provides a description of a suitable protocol used to transmit the messages as well as a description of other messages.
Action 405
FIG. 6 provides a suitable flow diagram of action 405 (FIG. 4). In action 610, the user, using a graphical web browser such as Netscape Navigator or Microsoft Explorer, supplies a universal resource locator (URL) or uses a hyperlink to access a web site that includes functionality in accordance with an embodiment of the present invention. The website is written, for example, in HTML, and includes potentially several web pages, each linked using the HTML code.
For example, FIG. 7 depicts a sample web site 700. Website 700 includes a graphical touch pad 702, through which alphanumeric characters can be entered; a field 704, into which characters can be entered; caption "address book" 706, that accesses a phone book, for example; and a conventional graphical banner in position 708.
In another embodiment, web site 700 provides users access to electronic mail, voice mail messages, and faxes. Websites that provide access to electronic mail, voice mail messages, and faxes are well known; see for example, Hotmail.com™, Excite.com™, and jfax.com™. Thus in this embodiment, web site 700 and system 100 allow users to respond vocally to voice mail messages, electronic mails, or faxes.
In action 610, after connection with the specified web site, the web site server uploads executable files that form "strtp.dll", "stnet.dll", "vscp.dll", and "tsd2.dll" to the PC of client 105. Such files and such *.dll files are listed in Appendix A.
Referring to FIG. 6, in action 620, the user enters a destination phone number, for example, into field 704 of the web site 700.
In one embodiment, when caption "address book" 706 of website 700 is selected, a phone book is provided to the user. Selecting a phone number in such phone book initiates a phone call to a destination audio communications device 150.
In one embodiment, the phone book is stored in a data base with data base server, described earlier. Commands to the data base are described in more detail in Appendix B. In position 708, a conventional graphical banner ad is displayed. Advertisements can be scheduled by use of a service available from Doubleclick of New York, New York, for example. Advertisements can be tailored to the user's interests. By providing advertisements that are targeted to specific users, advertising revenue can be maximized. In this embodiment, advertising revenue can be used to pay for costs of communication with the destination audio communications device 150.
Of course, by engaging the graphical banner advertisement, a user can purchase the product or service advertised.
In action 630, the client connects to a entry node 120 using, for example, the TCP/IP protocol. Action
630 corresponds to the message entitled TCP Connect 502 (FIG. 5) . The IP Address and port number of the entry node 120 are preconfigured in the files downloaded in action 610. In action 630, the client communicates at least the destination phone number, User ID, Password, and Session ID to the entry node 120. The User ID identifies a user and identifies information, such as described in Appendix B, associated with the user that is stored by the data base server. The Password is used by the web server to determine whether to permit access to the user's information from the data base. The Session ID is used to track the status of the voice communication .
In action 640, the entry node 120 provides the contact information of a selected intermediate server 130 to the client 105 using, for example, the TCP/IP protocol. Referring to FIG. 5, action 640 corresponds to the message entitled VEGA Server 504. In this embodiment, the contact information includes the IP address and port number of the selected intermediate server. In this embodiment, the IP Address is a 4 byte IPv4 address (IP version 4) of the selected intermediate server 130 and the port number is a 2 byte port number that selected intermediate server monitors for future communications from the client 105. In this embodiment, the entry node 120 maintains a table of potential intermediate servers 130 as well as the percent of active communications the intermediate server 130 maintains. Appendix C, an integral part of this disclosure, provides a description of a suitable technique whereby the entry node 120 monitors the activity level of intermediate servers 130. In this embodiment, the entry node 120 selects an intermediate server 130 that has the lowest activity percentage (e.g., Number of Active Sessions divided by Max Number of Sessions) . If all potential intermediate servers
130 are idle to the same extent, the entry node selects an intermediate server 130 having the lowest associated identification number. Other selection methods can be used, such as random selection.
Action 410
FIG. 8 provides a suitable flow diagram of action 410 (FIG. 4) . Appendix A provides a description of programs used in action 410. In action 810, the client 105 connects to the selected intermediate server 130 using the IP address and port number, both specified earlier in action 610, using for example, TCP/IP. In the example of FIG. 5, action 810 corresponds to (second occurring) "TCP Connect 506".
In action 820, the client 105 initializes connection with the selected intermediate server 130 by, for example, issuing a message entitled VSCP SETUP (item 508, FIG. 5) to the selected intermediate server 130 by using for example TCP/IP. Message VSCP SETUP initializes any communications between client 105 and the selected intermediate server 130. The following table provides a description of fields used in message VSCP SETUP.
Figure imgf000015_0001
Figure imgf000016_0001
Field Client-side Media Type represents the transmitted media type.
Figure imgf000016_0002
Figure imgf000017_0001
Field Client-side Payload Type represents the type of compression algorithm used to encode the selected media type, such as voice, video, or data. Currently, encoded voice payloads are supported.
Figure imgf000017_0002
In action 830, the selected intermediate server 130 determines whether to allow the client 105 to begin a voice or video based communication. The selected intermediate server 130 performs authentication, which includes determining if the client 105 having the specified Userid and password is permitted to use the selected intermediate server 130. If the client 105 is not permitted, the selected intermediate server 130 issues a RELEASE message to the client 105 (not depicted in FIG. 5) . Message RELEASE is described in more detail later. Examples of reasons for not permitting a client 105 include unknown User ID, incorrect password, and unsupported phone number. See below for a description of the message RELEASE. If the client 105 is permitted, then in action 840, the selected intermediate server 130 selects an ITSP gateway (hereafter "selected ITSP gateway") . An exemplary manner to select an ITSP gateway is to determine a least-cost available route for the destination phone number. Another exemplary manner to select an ITSP gateway 145 is to use a load balancing method whereby the ITSP gateway 145 with the least number of active sessions is selected. Load balancing advantageously lessens the impact of failure of a single ITSP gateway 145. Another exemplary manner to select an ITSP gateway 145 is to select an ITSP gateways based on a general hierarchy. The selected
ITSP gateway 145 is used to make a connection with the PSTN 148, through which the destination phone number is connected. The selected ITSP gateway is identified by an IP address. In action 850, the selected intermediate server
130 communicates with the selected ITSP gateway 145. A suitable technique to connect with the selected ITSP gateway 145 uses the H.323 protocol, both well known to those of skill in the art. In action 850, the Q.931 and H.245 protocols are conventional and described in the H.323 protocol. See for example "Digital Subscriber Signaling System No. 1 Network Layer - ISDN User-Network Interface Layer 3 Specification for Basic Call Control" (ITU-T Recommendation Q.931) and "Line Transmission of Non-Telephone Signals - Control Protocol for Multimedia Communication (ITU-T Recommendation H.245), which are incorporated herein by reference in their entirety.
As each ITSP gateway 145 may use a distinct style of H.323, the selected intermediate server 130 advantageously can support each distinct style of
H.323. Without use of the selected intermediate server 130, the client 105 may have to support each distinct style of H.323. Such support may require voluminous software be uploaded to the client 105. FIG. 9 schematically depicts operations of action 850 in more detail. In this embodiment, the communications of action 850 use the TCP/IP protocol.
In action 910, a connection with the specified destination audio communications device 150 is established. In one embodiment, action 910 further includes the actions 910-1 to 910-7.
In action 910-1, the selected intermediate server 130 provides the destination PSTN phone number to the selected ITSP gateway 145 to initiate a call using the conventional SETUP message which is defined by the Q.931 protocol. Action 910-1 corresponds to Q.931 SETUP 510 of FIG. 5.
In action 910-1, the selected intermediate server 130 next issues a message CALLPROCEED to the client (item 512, FIG. 5) . The CALLPROCEED message communicates to the client 105 that the current call request is currently in processing state. In this embodiment, message CALLPROCEED includes an 8 byte value that identifies the call. Message CALLPROCEED includes a unique Call Reference Value of, e.g., 8 bytes, that identifies a particular communication session. The selected intermediate server 130 maintains the status of each ongoing session.
In action 910-2, the selected ITSP gateway 145 dials the destination PSTN phone number. Action 910-2 corresponds to Dial 514 of FIG. 5. In action 910-3, the PSTN signals to the selected ITSP Gateway 145 that the destination audio communications device 150 is notifying the destination user of an incoming voice communication. Action 910-3 corresponds to Ringback 516 of FIG. 5.
In action 910-4, the selected ITSP gateway 145 acknowledges to the selected intermediate server 130 of notification by the PSTN to the destination audio communications device using the conventional ALERT message which is defined by the Q.931 protocol. Action 910-4 corresponds to Q.931 ALERT 518 of FIG. 5.
In action 910-5, the selected intermediate server 130 signals to the client that the destination user has been alerted and provides a "Call Reference Value", which is described later. Action 910-5 corresponds to the VSCP ALERT 520 of FIG. 5.
In action 910-6, the PSTN communicates to the selected ITSP gateway that the destination audio communications device has accepted the communication. Action 910-6 corresponds to Answer 522 of FIG. 5.
In action 910-7, the selected ITSP gateway 145 communicates to the selected intermediate server 130 that the destination audio communications device has accepted the communication using the conventional connect signal which is defined by the Q.931 protocol. Action 910-7 corresponds to Q.931 CONNECT 524 of FIG. 5.
In action 920, the communication standard between the selected intermediate server 130 and selected gateway 145 is set. In one embodiment, action 920 includes actions 920-1 to 920-2.
In action 920-1, the selected intermediate server 130 communicates the compression technique specified in action 820 and the media type (e.g., voice, video, data, or fax) to the selected ITSP gateway 145 using a conventional terminal capability set (TCS) message which is defined in the H.245 protocol. Action 920-1 corresponds to H.245 TCS 526 of FIG. 5.
In action 920-2, the selected ITSP gateway 145 signals receipt of the TCS message of action 935 to the selected intermediate server 130 using the conventional
TCS ACK message which is defined in the H.245 protocol.
Action 920-2 corresponds to the TCS ACK 528 of FIG. 5. In action 930, a communication relationship is established between selected intermediate server 130 and selected ITSP gateway 145. In one embodiment, action 930 includes actions 930-1 to 930-3.
In action 930-1, the selected intermediate server
130 identifies itself as the master to the selected
ITSP gateway 145 using the conventional master slave determination (MSD) message that is defined in the
H.245 protocol. Action 930-1 corresponds to the H.245
MSD 530 of FIG. 5.
In action 930-2, the selected ITSP gateway 145 signals receipt of the MSD of action 945 to the selected intermediate server 130 by sending the conventional MSD ACK that is defined in the H.245 protocol. Action 930-2 corresponds to the H.245 MSD
ACK 532 of FIG. 5.
In action 930-3, the selected intermediate server 130 signals to the selected ITSP gateway 145 that the master-slave process is complete using the conventional master MSD message that is defined in the H.245 protocol. Action 930-3 corresponds to the H.245 MSD
ACK 534 of FIG. 5. In action 940, a voice channel is established between selected intermediate server 130 and selected
ITSP gateway 145. In one embodiment, action 940 includes actions 940-1 to 940-4.
In action 940-1, the selected intermediate server 130 signals to the selected ITSP gateway 145 to open a voice channel from the selected intermediate server 130 signals to the selected ITSP gateway 145 using the conventional open logical channel (OLC) as defined in H.245. Action 940-1 corresponds to the H.245 OLC 536 of FIG. 5. In action 940-2, the selected ITSP gateway 145 signals receipt of the OLC of action 965 to the selected intermediate server 130 using the conventional OLC ACK of H.245. Action 940-2 corresponds to the H.245 OLC ACK 538 of FIG. 5. In action 940-3, the selected ITSP gateway 145 signals to the selected intermediate server to open a voice channel from the selected ITSP gateway to the selected intermediate server 130 signals using the conventional open logical channel (OLC) as defined in H.245. Action 940-3 corresponds to the H.245 OLC 540 of FIG. 5.
In action 940-4, the selected intermediate server 130 signals receipt of the OLC of action 975 to the selected ITSP gateway using the conventional OLC ACK as defined in H.245. Action 940-4 corresponds to the H.245 OLC ACK 542 of FIG. 5.
Referring to FIG. 8, in action 860, the selected intermediate server 130 notifies the client that a call is being connected by sending a CONNECT message, which corresponds to VSCP CONNECT 544 of FIG. 5. The following table provides a description of CONNECT.
Figure imgf000022_0001
Figure imgf000023_0001
Figure imgf000024_0001
Action 415
In action 415 (FIG. 4), the client 105 communicates with the selected ITSP gateway 145 using, for example, the RTP protocol. RTP is an independent standard protocol for encoding and transmitting multimedia streaming that is well known to those of ordinary skill in the art. Action 415 corresponds to RTP Data 546 of FIG. 5. Of course, other protocols can be used besides RTP, such as any other proprietary media streaming protocol.
In accordance with the RTP standard, program "strtp.dll", described in Appendix A, provides transmission of encoded voice. An exemplary technique to encode and decode voice is available from the DSP Group of Santa Clara, CA. In this embodiment, program "tsd2.dll" includes the exemplary technique to encode and decode voice.
Thus voice streams are communicated directly between the client and selected ITSP gateway. This direct communication reduces delay of voice packet communications. Such delays introduce noticeable delays in voice communications.
In one embodiment, brief audio ads can be provided to users through the speaker of the client 105 prior to commencing an audio communication. The audio ads generate revenue that can be used to subsidize costs of communicating with the destination audio communications device 150.
Action 420
In action 420 (FIG. 4), the voice communication ends. For example, a client 105 issues a RELEASE (548, FIG. 5) to the selected intermediate server 130 when a user desires to terminate a talk. Similarly, the selected intermediate server 130 issues a RELEASE to the client 105 using, for example, TCP/IP, when a call recipient wishes to terminate a talk. In this embodiment, the "VEGA Server Source Files" described in Appendix A are used in action 420.
One exemplary manner to terminate a voice communication is as follows. The selected intermediate server 130 signals to terminate the H.323 session using for example a H.245 ESC message as defined in the H.245 standard to the selected ITSP gateway (see H.245 ESC 550 of FIG. 5) . The selected ITSP gateway 145 then signals to terminate the H.323 session using for example a H.245 ESC message as defined in the H.245 standard to the selected intermediate server 130 (see H.245 ESC 552 of FIG. 5). Next, the selected ITSP gateway 145 issues a hangup command to the PSTN to discontinue a session (see Hangup 554 of FIG. 5) . Next, the selected intermediate server 130 communicates to the selected ITSP gateway 145 to terminate the session using for example the Q.931 disconnect message defined in the Q.931 protocol (see Q.931 disconnect 556 of FIG. 5) . Thereafter, the selected intermediate server 130 frees resources such as other temporary allocated data structures used for the ended session for another session. Also the selected intermediate server 130 logs the end of the call to a Log Database. The Log Database records the Start Time, End Time,
Success/Failure, Caller, Callee phone number. The Log Database is stored by the database server, described earlier and in Appendix B.
DTMF support When the user presses a digit on the website 700 (for example, for voice mail) , the client 105 sends the digit to the selected intermediate server 130 using the DTMF message. The selected intermediate server 130, in turn, transfers the DTMF message to the selected ITSP gateway using an H.245 message.
The following table provides parameters of the DTMF message.
Figure imgf000026_0001
Communication halts
At any time, communication halt can be generated by either the client, a selected intermediate server 130, or a remote client using VSCP RELEASE. For example, some communications or messages between a client and selected intermediate server 130 or remote client must be received within an allotted time. If the communications or messages are not received within an allotted time, the receiver issues a RELEASE message to the communication/ message sender to discontinue any communication on an initiated or active session.
The RELEASE message is used to end a TCP connection. For example, the RELEASE message is used if the selected intermediate server or client do not receive a message, such as SETUP, CALLPROCEED, ALERT, or CONNECT, in an allotted time. The following table provides parameters of the RELEASE message.
Figure imgf000027_0001
The Call Reference Value field identifies a particular communication session. The following table provides potential values and associated meanings for each Reason field.
Figure imgf000027_0002
Client to remote client
In client to remote client communication, the client and remote client communicate directly using the internet or a private network. The clients communicate using messages TCP connect, VSCP SETUP, VSCP CALLPROCEED, VSCP ALERT, VSCP CONNECT, RTP Data, and
VSCP RELEASE described earlier at least with respect to FIG. 5. Thus in this embodiment, each of client and remote client use only the "Client side programs", described in Appendix A. The client initiates communication with a remote client using the TCP connect message, in which the IP address and port of the remote client are specified. Thus, for example, the client and remote client are each identified by an IP address and port number. Advantageously, each client does not need to support the full H.323 protocol, which would be necessary to communicate with an ITSP gateway. Rather, for client to remote client communications, only the RTP needs to be supported. Thus, the software needed by each client is minimized. Should the client request communication with a destination audio communications device, a selected intermediate server supports any necessary distinct implementation of the H.323 protocol needed to communicate with any ITSP gateway.
Modifications
The above-described embodiments of the present invention are merely meant to be illustrative and not limiting. It will thus be obvious to those skilled in the art that various changes and modifications may be made without departing from this invention in its broader aspects. For example, system 100 could easily support video, data, or fax communications. Therefore, the appended claims encompass all such changes and modifications as fall within the true scope of this invention.
APPENDIX A Entry node programs
A program "vgk.c" is executed by the entry node 120 to support communications between intermediate servers and any client. Program "vgk.c" is used in action 405 (FIGs. 4 and 8).
Client side programs
The "Client side programs" are executed by the client 105 and support any communications to and from the client 105. Collectively, the client side programs are used in actions 610 and 620 of FIG. 6. In this embodiment, code segments provided in tables entitled "Java files", "Resource Files", "Microsoft COM Wrapper Class (Internet Explorer only)", "Microsoft COM (Common Object Model) related files for Internet Explorer", "Netscape Plugin related files for Netscape Communicator", "C++ Compiler (Microsoft Visual C++ 6.0) related files", "C++/Header Files", and "External Dependencies" are uploaded to a client.
Program "vegacomm. cpp", "vegacomm2. cpp", and "vegacomm.h" are compiled together to make up the main client side application.
Together, all of code segments listed under the C++/Header Files table make up "vscp.dll". Executing program "vscp.dsw" commences compilation of "vscp.dll".
Java files are used to build the Java applet. It is the main module of the client application. All the direct user interaction and user interface are implemented in these files.
Resource files contain the user interface and multimedia object definitions.
The COM files are used as an interface between Java Applet and the *.dll files. The Netscape Plugin files allow control the Java applet to control the sound card. Netscape plugin files for Netscape serves the same role that the COM module does for MS Internet Explorer.
File "strtp.dll" supports RTP communication and voice encoding/decoding functions between the client 105 and any destination device (for example, PC to phone communications) or any remote client (for example, PC to PC communications) .
Figure imgf000030_0001
Figure imgf000031_0001
Figure imgf000031_0002
Figure imgf000032_0001
Figure imgf000032_0002
Figure imgf000033_0001
Figure imgf000033_0002
Netscape Plugin related files for Netscape
Communicator
Figure imgf000034_0001
Figure imgf000035_0001
Figure imgf000035_0002
Figure imgf000036_0001
Figure imgf000036_0002
Figure imgf000036_0003
Figure imgf000037_0001
Intermediate server programs
The "VEGA Server Source Files" are executed by the selected intermediate server and support any communications to and from the selected intermediate server.
Figure imgf000037_0002
H.323 programs
The programs of the "H.323 Stack Packages" are executed by the selected intermediate server and support any H.323 level communications between the selected intermediate server and the ITSP gateway, The programs of the H.323 Stack Packages are used to support an H.323 protocol based communication in process 850 of FIG. 9.
Figure imgf000038_0001
The following table provides a correspondence between actions of process 400 and the programs described in Appendix A.
Figure imgf000039_0001
APPENDIX B: DATABASE The following commands are issued by the web server to the data base server. The data base server replies using responses, described herein. FIG. 10 schematically depicts the relationship between clients 105-i and 105-j and the data base 1000. In one embodiment, the commands are transmitted using TCP/IP.
Commands
The following table shows commands and associated values .
Figure imgf000040_0001
Return Codes
The following table shows the return codes and associated values. The return codes are generated in response to a command.
Figure imgf000041_0001
LOGIN
The LOGON command is a command to logon to the selected intermediate server. The LOGON command format is as follows.
Figure imgf000041_0002
Response to LOGIN
The format of the response to the LOGIN command follows .
Figure imgf000042_0001
The Return Codes are any of: RETCODE_SUCCESS, RETCODE_INVALID_USERNAME, RETCODE_INVALID_PASSWORD, or RETCODE_SERVER_ERROR. The Session ID is described earlier.
REGISTER
The REGISTER command registers the client's IP Address/Port information to the database. The REGISTER command format is as follows.
Figure imgf000042_0002
Command: 0x11
Session ID: described earlier IP Address (IPv4) Port Number: Port Number of selected intermediate server Override flag is either
NO_OVERRIDE (0x0) : Do not replace the information if already exists OVERRIDE (0x01) : Replace the information if already exists.
Response to REGISTER The format of the response to the REGISTER command follows .
Figure imgf000043_0001
The Return Code is any of: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, RETCODE_INVALID_IPADDRESS, RETCODE_INVALID_PORT, RETCODE_ALREADY_CONNETED, or RETCODE_SERVER_ERROR .
The User ID is described earlier.
LOGOFF
LOGOFF command specifies which session is to end. The LOGOFF command format is as follows.
Figure imgf000043_0002
Response to LOGOFF
No Response
GETSTATUS
GETSTATUS command is a request for status information of a user The GETSTATUS command format is as follows.
Figure imgf000043_0003
User ID 2-5 Described earlier User Name 6-15 Described earlier
Response to GETSTATUS
The format of the response to the GETSTATUS command follows.
Figure imgf000044_0001
The Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_USERID, RETCODE_INVALID_USERNAME, or RETCODE_SERVER_ERROR.
The Status is any of the following: STATUS_NOTCONNECTED (0x00) : User client not registered STATUS_CONNETED (0x01) : User client registered
IP Address is described earlier.
Port Number is described earlier.
UNREGISTER
The UNREGISTER command is a request to unregister a client's IP Address/Port information from the database. The UNREGISTER command format is as follows.
Figure imgf000044_0002
Response to UNREGISTER No Response.
ADDUSER
The ADDUSER command is a request to add a new user to the database and provides associated information on the new user. The ADDUSER command format is as follows .
Figure imgf000045_0001
Response to ADDUSER The response to the ADDUSER command is the following format.
Figure imgf000046_0001
The Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_USERNAME, RETCODE_INVALID_PASSWORD, RETCODE_ALREADY_EXIST, or RETCODE SERVER ERROR.
DELETEUSER
The DELETEUSER command is a request to delete a user from the database. The DELETEUSER command format is as follows.
Figure imgf000046_0002
Response to DELETEUSER
The response to the DELETEUSER command is the following format.
Figure imgf000046_0003
The Return Code is any of RETCODE_SUCCESS, RETCODE INVALID SESSIONID, or RETCODE SERVER ERROR.
MODIFYUSER
The MODIFYUSER command is a request to modify user information in the database. The MODIFYUSER command format is as follows. Any field that is not to change is 0x00.
Figure imgf000047_0001
Response to MODIFYUSER The response to the MODIFYUSER command is the following format.
Figure imgf000048_0001
The Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, or RETCODE SERVER ERROR,
GETUSERINFO
The GETUSERINFO command is a request to retrieve user information from the database. The GETUSERINFO command format is as follows.
Figure imgf000048_0002
Response to GETUSERINFO
The response to the GETUSERINFO command is the following format.
Figure imgf000048_0003
Figure imgf000049_0001
The Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, or RETCODE SERVER ERROR.
ADDCONTACTINFO
The ADDCONTACTINFO command is a request to add a new contact to the user' s contact list stored the database. The ADDCONTACTINFO command format is as follows .
Figure imgf000049_0002
Figure imgf000050_0001
Phone Types are any of the following: HOME_PHONE: Home Phone Number WORK_PHONE: Work Phone Number CELL_PHONE: Cell Phone Number PAGER_PHONE: Pager Number OTHER PHONE: Other Number
Response to ADDCONTACTINFO
The response to the ADDCONTACTINFO command is the following format .
Figure imgf000050_0002
The Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, RETCODE_INVALID_USERNAME, RETCODE_ALREADY_EXIST, or RETCODE_SERVER_ERROR .
The Contact ID is a 4 byte Contact Identifier.
DELETECONTACTINFO The DELETECONTACTINFO command is a request to delete contact information from a user' s contact list that is stored in the database. The DELETECONTACTINFO command format is as follows.
Figure imgf000051_0001
Response to DELETECONTACTINFO
The response to the DELETECONTACTINFO command is the following format.
8 7 6 5 4 3 2 1 Octet no .
Return Code 1
The Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, RETCODE_INVALID_CONTACTID, RETCODE_NO_OWNER, or RETCODE SERVER ERROR.
MODIFYCONTACTINFO
The MODIFYCONTACTINFO command is a request to modify a contact in a user's contact list that is stored in the database. The MODIFYCONTACTINFO command format is as follows.
Octet Brief Description
Figure imgf000052_0001
Response to MODIFYCONTACTINFO
The response to the MODIFYCONTACTINFO command is a one octet "Return Code".
The Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, RETCODE_INVALID_CONTACTID, RETCODE_INVALID_USERNAME, RETCODE_ALREADY_EXIST, RETCODE_NO_OWNER, or RETCODE SERVER ERROR.
GETCONTACTLIST
The GETCONTACTLIST command is a request for a list of contacts from the user' s contact list based on provided search criteria. The GETCONTACTLIST command format is as follows.
Figure imgf000053_0001
Figure imgf000054_0001
Response to GETCONTACTLIST
The response to GETCONTACTLIST is a header followed by multiple contact entries.
Header
Figure imgf000054_0002
Each Contact Entry
Figure imgf000054_0003
Figure imgf000055_0001
The Phone Types are any of the following HOME_PHONE (Home Phone Number) , WORK_PHONE (Work Phone Number) , CELL_PHONE (Cell Phone Number) , PAGER_PHONE (Pager Number), OTHER_PHONE (Other Number) .
GETCONTACTINFO
The GETCONTACTINFO command is a request for detailed information of a specific contact entry. The GETCONTACTINFO command format is as follows.
Figure imgf000055_0002
Response to GETCONTACTINFO
The response to the GETCONTACTINFO command is the following format.
Figure imgf000056_0001
The Return Code is any of the following: RETCODE_SUCCESS, RETCODE_INVALID_SESSIONID, RETCODE_INVALID_USERID, RETCODE_INVALID_CONTACTID, RETCODE NO OWNER, RETCODE SERVER ERROR
The Phone Types are any of the following: HOME_PHONE (Home Phone Number) WORK_PHONE (Work Phone Number) CELL_PHONE (Cell Phone Number) PAGER_PHONE (Pager Number) OTHER PHONE (Other Number)
FINDUSERNAME The FINDUSERNAME command is a request for a list of users that match the first, last name and email. The FINDUSERNAME command format is as follows.
Figure imgf000057_0001
Response to FINDUSERNAME
The response to the FINDUSERNAME command includes a header followed by multiple contact entries.
Header
8 7 6 5 4 3 2 1 Octet no .
# of Entries 1-2
Each User Entry
8 7 6 5 4 3 2 1 Octet no.
User Name 1-10 First Name 11-30 Last Name 31-50
Each of User Name, First Name, Last Name are Null- terminated ASCII strings. APPENDIX C The entry node maintains the IP Address, Port numbers, and the status information of selected intermediate servers. The entry node further routes a client's call request to an intermediate server based on the status information.
The entry node can be used for disabling or enabling intermediate servers. In the case of a failure of an intermediate server, a backup intermediate server can easily replace the dysfunctional intermediate server.
The entry node maintains a TABLE of information for all the intermediate servers. The entry node periodically broadcasts a REPORT_REQUEST packet to the intermediate servers, and all the intermediate servers register/report their information in response to the packet. Because the REPORT_REQUEST packet is broadcasted periodically, new intermediate servers can be added without having to restart the entry node. In this embodiment, the REPORT_REQUEST is transmitted using UDP (User Datagram Protocol) over IP.
The REPORT_REQUEST packet includes an IP address and a port number. The IP Address is, e.g., a 4 byte IPv4 Address of the entry node. The port number is, e.g., a 2 byte port number that the entry node listens for response.
A SERVER_REPORT packet is transmitted by an intermediate server in response to the REPORT_REQUEST . It contains the IP Address/Port information and the load information of the intermediate server 130. In this embodiment, the SERVER_REPORT is transmitted using UDP/TCP/IP.
The following table describes fields in the SERVER REPORT packet.
Field Name Octet no.
Figure imgf000059_0001
The IP Address is, e.g., a 4 byte IPv4 Address of the corresponding intermediate server. The Port Number is, e.g., 2 byte port number that the corresponding intermediate server listens for communications from the client. This port number is passed to the client upon request by the entry node. The Number of Active Sessions is the number of calls that the corresponding intermediate server is handling. This information is used by the entry node for distributing the client's call requests. The Max Number of Sessions is a maximum number of concurrent calls that the corresponding intermediate server is capable of handling.
APPENDIX D: Messages
Message transmission protocol
A description of a suitable transport topology for the messages is provided. In this embodiment, messages are transmitted using TCP/IP. The following conventional TCP header is used to transport all messages .
Figure imgf000060_0001
The Protocol Discriminator species byte orders. Byte order is the order used for forming a 'word'. Some platforms use the higher byte first, and some use the lower byte first. For example, to express the number '1', it is 00 01 on some systems, and 01 00 on others. Byte orders are different in different CPU platforms. For example, Sun SPARC uses different byte order from Intel's. For network applications, which typically would pass data to another heterogeneous system, it is important to let the remote party which byte order scheme is being used.
In this embodiment, the Protocol Discriminator is 0x5354. The Content Length represents a total length of the packet, i.e., the header and + message content together.
Message header
The following is a header for messages,
Figure imgf000060_0002
Figure imgf000061_0001
The Message Type field species the type of message. The following tables provides associated values and messages .
Figure imgf000061_0002
The Version Info field specifies the Version Number of the message. Because the message protocol definitions may change in the future, by using the version info, the receiver can reject a message if it is a higher version than it supports.
Various Messages
The following message can be used, but is not shown in FIG. 5.
STATUS. The client uses the STATUS message to report current status information to the selected intermediate server. The following table provides parameters of the STATUS message.
Figure imgf000061_0003
Figure imgf000062_0001
The Call Reference Value field specifies a unique identifier (number) of the call session. The Status field species the status of the client. For example a value of 0x00 species the connection to the client is alive

Claims

CLAIMSWhat is claimed is:
1. A method of providing communications between a client and destination audio receiver, the method comprising the acts of: accessing a web site; providing link information to a entry node; providing link information to an intermediate node; accessing the intermediate node; providing link information to a gateway node; and accessing the gateway node.
2. The method of Claim 1, wherein the act of providing link information to an intermediate node comprises determining an intermediate node with the lowest activity level.
3. The method of Claim 1, wherein the act of providing link information to the gateway node further comprises determining a least cost gateway.
4. The method of Claim 1, wherein the gateway node comprises an ITSP gateway.
5. The method of Claim 1, further comprising using a PSTN associated with the destination audio receiver.
6. The method of Claim 5, wherein the destination audio receiver comprises a remote client.
7. The method of Claim 1, wherein the intermediate node establishes H.323 based communication with the gateway node .
8. The method of Claim 1, wherein the web site provides advertising and wherein the communications are free to select users.
9. An apparatus that provides communications between a client and destination audio receiver, the apparatus comprising: at least one gateway server that is capable of communicating with the destination audio receiver; at least one intermediate server that is capable of communicating with the at least one gateway server; an entry node that is capable of communicating with the at least one intermediate server and the client, wherein the client signals the entry node to select an intermediate server, the selected intermediate server selects a gateway server, the selected intermediate server initiates communications with the gateway server, and the client and destination audio receiver communicate without use of the entry node.
10. The apparatus of Claim 9, wherein the destination audio receiver comprises a remote client.
11. The apparatus of Claim 9, wherein the apparatus provides free audio communications between the client and destination audio receiver by providing advertising to the client.
12. The apparatus of Claim 11, wherein the advertising comprises video advertisements.
13. The apparatus of Claim 11, wherein the advertising comprises audio advertisements.
14. The apparatus of Claim 9, wherein the destination audio receiver comprises a remote client.
15. A method of providing free audio communications to a user, the acts comprising: providing an advertisement to the user; providing a destination audio receiver identifier; and providing a signal path for audio communications using the destination audio receiver identifier.
16. The method of Claim 15, wherein the providing an advertisement further includes: using a website to provide a visual advertisement .
17. The method of Claim 15, wherein the providing an advertisement further includes: generating an audio advertisement.
18. The method of Claim 15, wherein the providing a signal path further includes: providing link information to a entry node; providing link information to an intermediate node; accessing the intermediate node; providing link information to a gateway node; and accessing the gateway node.
19. The method of Claim 15 wherein the destination audio receiver comprises a remote client.
20. The method of Claim 19 wherein the destination audio receiver identifier comprises an IP address of the remote client.
PCT/US2000/024485 1999-09-24 2000-09-06 Scaleable communications system WO2001024478A2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2001527532A JP2003530732A (en) 1999-09-24 2000-09-06 Communication system with scalability
CA002343754A CA2343754A1 (en) 1999-09-24 2000-09-06 Scaleable communications system
BR0006923-0A BR0006923A (en) 1999-09-24 2000-09-06 Scale-adjustable communication system
EP00970450A EP1190550A2 (en) 1999-09-24 2000-09-06 Scaleable communications system
AU79830/00A AU7983000A (en) 1999-09-24 2000-09-06 Scaleable communications system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40189899A 1999-09-24 1999-09-24
US09/401,898 1999-09-24

Publications (2)

Publication Number Publication Date
WO2001024478A2 true WO2001024478A2 (en) 2001-04-05
WO2001024478A3 WO2001024478A3 (en) 2002-01-17

Family

ID=23589696

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/024485 WO2001024478A2 (en) 1999-09-24 2000-09-06 Scaleable communications system

Country Status (8)

Country Link
EP (1) EP1190550A2 (en)
JP (1) JP2003530732A (en)
KR (1) KR20010050717A (en)
CN (1) CN1415159A (en)
AU (1) AU7983000A (en)
BR (1) BR0006923A (en)
CA (1) CA2343754A1 (en)
WO (1) WO2001024478A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502228A (en) * 2001-04-27 2005-01-20 ザ ボーイング カンパニー Data communication processing method, computing device, and computer-readable medium
WO2006010193A1 (en) * 2004-07-30 2006-02-02 Cockatu Pty Limited Voice calls over the internet
WO2008065533A2 (en) 2006-11-27 2008-06-05 Skype Limited Communication system
US8014511B2 (en) 2006-11-27 2011-09-06 Skype Limited Communication system
US8798036B2 (en) 2006-11-20 2014-08-05 Skype Communication system and method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1893426B (en) * 2005-07-08 2010-08-04 中国电信股份有限公司 Method and system for realizing pass-through of fire-wall at personal network video signals

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997013352A1 (en) * 1995-09-29 1997-04-10 Northern Telecom Limited Methods and apparatus for originating voice calls
EP0833488A1 (en) * 1996-09-13 1998-04-01 Lucent Technologies Inc. Web-page interface to telephone features
WO1999014931A2 (en) * 1997-09-16 1999-03-25 Transnexus, Llc Internet telephony call routing engine

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3517052B2 (en) * 1996-03-19 2004-04-05 富士通株式会社 Gateway selection control system in voice communication system
GB9711788D0 (en) * 1997-06-06 1997-08-06 Northern Telecom Ltd Method and interface for connecting communication traffic between narrowband and broadband networks
JPH114292A (en) * 1997-06-12 1999-01-06 Hitachi Ltd Communication system
JP3263339B2 (en) * 1997-07-18 2002-03-04 日本電信電話株式会社 Internet / telephone network integrated utilization method and system
JPH1155327A (en) * 1997-08-05 1999-02-26 Matsushita Electric Ind Co Ltd Connection control server for substitute server and substitute server and network control method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997013352A1 (en) * 1995-09-29 1997-04-10 Northern Telecom Limited Methods and apparatus for originating voice calls
EP0833488A1 (en) * 1996-09-13 1998-04-01 Lucent Technologies Inc. Web-page interface to telephone features
WO1999014931A2 (en) * 1997-09-16 1999-03-25 Transnexus, Llc Internet telephony call routing engine

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ROSENBERG J ET AL: "INTERNET TELEPHONY GATEWAY LOCATION" PROCEEDINGS. IEEE INFOCOM, THE CONFERENCE ON COMPUTER COMMUNICATIONS. ANNUAL JOINT CONFERENCE OF THE IEEE COMPUTER AND COMMUNICATIONS SOCIETIES. GATEWAY TO THE 21ST CENTURY, XX, XX, 1998, pages 488-496, XP000770869 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502228A (en) * 2001-04-27 2005-01-20 ザ ボーイング カンパニー Data communication processing method, computing device, and computer-readable medium
WO2006010193A1 (en) * 2004-07-30 2006-02-02 Cockatu Pty Limited Voice calls over the internet
US8798036B2 (en) 2006-11-20 2014-08-05 Skype Communication system and method
US8175091B2 (en) 2006-11-27 2012-05-08 Skype Limited Communication system
US8014511B2 (en) 2006-11-27 2011-09-06 Skype Limited Communication system
US8170563B2 (en) 2006-11-27 2012-05-01 Skype Limited Systems and methods for transmission of data in a communication system
WO2008065533A3 (en) * 2006-11-27 2008-08-28 Skype Ltd Communication system
US8238539B2 (en) 2006-11-27 2012-08-07 Skype Communication system
US8320546B2 (en) 2006-11-27 2012-11-27 Skype Communicaton system
US8346264B2 (en) 2006-11-27 2013-01-01 Skype Transmission of data in a communication system
US8457144B2 (en) 2006-11-27 2013-06-04 Skype Communication system
US8634535B2 (en) 2006-11-27 2014-01-21 Skype Communication system
US8711841B2 (en) 2006-11-27 2014-04-29 Skype Communication system
WO2008065533A2 (en) 2006-11-27 2008-06-05 Skype Limited Communication system

Also Published As

Publication number Publication date
BR0006923A (en) 2002-04-30
WO2001024478A3 (en) 2002-01-17
EP1190550A2 (en) 2002-03-27
CA2343754A1 (en) 2001-04-05
CN1415159A (en) 2003-04-30
JP2003530732A (en) 2003-10-14
AU7983000A (en) 2001-04-30
KR20010050717A (en) 2001-06-15

Similar Documents

Publication Publication Date Title
US8793338B2 (en) Providing content delivery during a call hold condition
AU2002345133B2 (en) Method and apparatus for obtaining data information
US6298120B1 (en) Intelligent processing for establishing communication over the internet
KR100472952B1 (en) A SIP(Session Initiation Protocol) Load Balancing Apparatus and Method
US7283515B2 (en) Internet telephony network and methods for using the same
CN103634490B (en) The gateway that a kind of enterprise network being provided for use SIP can be survived
US9008620B2 (en) Mobile device service authorization system and method
US6999458B2 (en) Internet telephony network and methods for using the same
US7574471B2 (en) System and method for exchanging information with a relationship management system
US20130091194A1 (en) Session initiation protocol (sip) message incorporating a multi-purpose internet mail extension (mime) media type for describing the content and format of information included in the sip message
KR100415023B1 (en) Concurrent ip based voice and data services via wireless networks
US20050073999A1 (en) Delivery of profile-based third party content associated with an incoming communication
US20020101853A1 (en) Caller identification and voice/data synchronization for internet telephony and related applications
US7230945B2 (en) Method for sending dual-tone multi-frequency signal using voice over internet protocol
EP2119188A1 (en) Method, system and user equipment for providing secondary information to a user equipment
US20030112932A1 (en) Call charging notification
WO2008106431A2 (en) Technique for providing data objects prior to call establishment
US20030003898A1 (en) Utilizing parallel available services over a wireless network
US20040059820A1 (en) Method and apparatus of communications over a network
WO2001024478A2 (en) Scaleable communications system
CN1222193C (en) Communications network
EP1275233B1 (en) Method, gateway system and arrangement in a communication network
KR100369809B1 (en) Method for transmitting dual tone multiple frequency signal using voip
Headquarters Cisco Gatekeeper External Interface Reference, Version 4.1

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 00801439.6

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 2343754

Country of ref document: CA

Ref document number: 2343754

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 79830/00

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 2000970450

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2001 527532

Country of ref document: JP

Kind code of ref document: A

AK Designated states

Kind code of ref document: A2

Designated state(s): AU BR CA CN JP SG

AL Designated countries for regional patents

Kind code of ref document: A2

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
AK Designated states

Kind code of ref document: A3

Designated state(s): AU BR CA CN JP SG

AL Designated countries for regional patents

Kind code of ref document: A3

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

WWP Wipo information: published in national office

Ref document number: 2000970450

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2000970450

Country of ref document: EP