An internet switch box connects between a telephone set and a public switched telephone network (PSTN) line, the latter of which is used both for PSTN telephone conversations and for connection to an internet service provider (ISP). The switch box contains hardware and embedded software for establishing a connection to an ISP and for internet telephony. When two users, each having an internet switch box connected to the telephone set, wish to have an internet telephony conversation, one calls the other over the PSTN. When they agree to an internet telephony conversation, they signal their internet switch boxes, by pressing either buttons on the switch boxes or certain keys on the telephone keypads, to switch to internet telephony. The switch boxes disconnect the PSTN call and connect to their ISPs. Once the switch boxes are on the internet, they contact each other through a server which supplies internet protocol (ip) addresses of switch boxes, and the users continue their conversation by internet telephony. The users can also prearrange to call each other solely by internet telephony, in which case they do not need to talk to each other over the PSTN.
|
0. 23. A first communication apparatus, comprising:
a first interface for connecting to a primary network;
a second interface for connecting to a secondary network; and
a processor that:
accepts a first connection from a second communication apparatus over the primary network via the first interface;
receives an address of the second communication apparatus;
connects the first communication terminal to the secondary network via the second interface; and
establishes a second connection with the second communication apparatus over the secondary network using the address.
0. 19. A method for connecting a first communication apparatus to a second communication apparatus, the method performed by the first communication apparatus, comprising:
establishing a first connection with the second communication apparatus over a primary network;
connecting to a secondary network;
receiving a first address of the first communication apparatus on the secondary network;
providing the first address to the second communication apparatus; and
establishing a second connection with the second communication apparatus over the secondary network using the first address.
0. 24. A non-transitory computer-readable storage medium storing a computer program which, when executed by a first communication apparatus, causes the first communication apparatus to perform a method for connecting to a second communication apparatus, the method comprising:
accepting a first connection from the second communication apparatus over a primary network;
receiving an address of the second communication apparatus;
connecting to the secondary network; and
establishing a second connection with the second communication apparatus over the secondary network using the address.
0. 5. A method for connecting a first communication apparatus to a second communication apparatus, comprising:
establishing a first connection between the first communication apparatus and the second communication apparatus over a primary network;
connecting the first communication apparatus to a secondary network;
receiving a first address of the first communication apparatus on the secondary network;
providing the first address to the second communication apparatus; and
establishing a second connection between the first communication apparatus and the second communication apparatus over the secondary network based on the first address.
0. 11. A first communication apparatus, comprising:
a first interface for connecting to a primary network;
a second interface for connecting to a secondary network; and
a processor that:
establishes a first connection with a second communication apparatus over the primary network via the first interface;
connects to the secondary network via the second interface;
receives a first address of the first communication apparatus on the secondary network;
provides the first address to the second communication apparatus; and
establishes a second connection with the second communication apparatus over the secondary network using the first address.
0. 15. A non-transitory computer-readable storage medium storing a computer program which, when executed by a first communication apparatus, causes the first communication apparatus to perform a method for connecting to a second communication apparatus, the method comprising:
establishing a first connection with the second communication apparatus over a primary network;
connecting to a secondary network;
receiving a first address of the first communication apparatus on the secondary network;
providing the first address to the second communication apparatus; and
establishing a second connection with the second communication apparatus over the secondary network using the first address.
0. 25. A communication system, comprising:
a primary network;
a secondary network;
a first communication apparatus connectable to the primary network and the secondary network; and
a second communication apparatus connectable to the primary network and the secondary network;
wherein the first communication apparatus:
establishes a first connection with the second communication apparatus over the primary network,
connects to the secondary network,
receives an address of the first communication apparatus on the secondary network, and
provides the address to the second communication apparatus;
the second communication apparatus:
accepts the first connection from the first communication apparatus,
receives the address of the first communication apparatus, and
connects to the secondary network; and
the first communication apparatus and the second communication apparatus establish a second connection over the secondary network using the address.
3. A system for establishing a telephony call; comprising:
an internet switch box (isb) terminal and a second terminal;
an internet protocol (ip) server that associates a telephone number provided by the isb terminal with a first ip address; and
first and second devices, in a communication path between the isb terminal and the second terminal, that establish an internet communication link using the associated first ip address and communicate information across the established internet communication link, wherein:
the ip server associates a telephone number provided by the second terminal with a second ip address;
the first and second devices establish the internet communication link using the first and second ip addresses;
the isb terminal and the second terminal communicate the respective telephone numbers to the ip server;
the ip server associates the respective telephone numbers with the first and second ip addresses and enables the establishment of the internet communication link based on the first and second ip addresses;
the first device communicates the second ip address to the ip servers;
the second device communicates the first ip address to the ip server; and
the ip server associates the telephone number provided by the isb terminal with the first ip address provided by the second device and associates the telephone number provided by the second terminal with the second ip address provided by the first device.
2. A method of establishing a telephony call, comprising:
correlating a first destination telephone number provided by a first terminal with a first origination telephone number provided by a second terminal to associate a first internet protocol (ip) address with the first destination telephone number;
correlating a second destination telephone number provided by the second terminal with a second origination telephone number provided by the first terminal to associate a second ip address with the second destination telephone number;
establishing an internet communication link in a communication path between the first and second terminals using the associated first and second ip addresses;
communicating information across the established internet communication link;
communicating the second ip address, provided by a first device interconnecting the first terminal with a first network connection of the internet communication link, to an ip server; and
communicating the first ip address, provided by a second device interconnecting the second terminal with a second network connection of the internet communication link, to the ip server, wherein:
the ip server associates the first destination telephone number provided by the first terminal with the first ip address provided by the second device and associates the second destination telephone number provided by the second terminal with the second ip address provided by the first device.
1. A method of establishing a telephony call, comprising:
associating a telephone number provided by a first terminal with a first internet protocol (ip) address;
establishing an internet communication link in a communication path between the first terminal and a second terminal using the associated first ip address;
communicating information across the established internet communication link;
associating a telephone number provided by the second terminal with a second ip address, wherein:
the internet communication link is established using the first and second ip addresses,
communicating the telephone numbers provided by the first and second terminals to an ip server, wherein:
the ip server associates the respective telephone numbers with the first and second ip addresses and enables the establishment of the internet communication link based on the first and second ip addresses;
communicating the second ip address, provided by a first device interconnecting the first terminal with a first network connection of the internet communication link, to the ip server; and
communicating the first ip address, provided by a second device interconnecting the second terminal with a second network connection of the internet communication link, to the ip server, wherein:
the ip server associates the telephone number provided by the first terminal with the first ip address provided by the second device and associates the telephone number provided by the second terminal with the second ip address provided by the first device.
4. A system of establishing a telephony call, comprising:
first and second internet service box terminals;
an internet protocol (ip) server that:
correlates a first destination telephone number provided by the first isb terminal with a first origination telephone number provided by the second internet service box terminal to associate a first internet protocol (ip) address with the first destination telephone number; and
correlates a second destination telephone number provided by the second isb terminal with a second origination telephone number provided by the first internet service box terminal to associate a second ip address with the second destination telephone number; and
first and second devices, in a communication path between the first and second internet service box terminals, that establish an internet communication link using the associated first and second ip addresses and communicate information across the established internet communication link, wherein:
the first device communicates the second ip address, of a first network connection of the internet communication link, to the ip server; and
the second device communicates the first ip address, of a second network connection of the internet communication link, to the ip server, wherein
the ip server associates the first destination telephone number provided by the first terminal with the first ip address provided by the second device and associates the second destination telephone number provided by the second terminal with the second ip address provided by the first device.
0. 6. The method of claim 5, wherein the first communication apparatus and the second communication apparatus communicate over the primary network and the secondary network after the second connection is established.
0. 7. The method of claim 5, further comprising disconnecting the first communication apparatus from the primary network after the second connection is established.
0. 8. The method of claim 5, wherein the first communication apparatus has a second address on the primary network.
0. 9. The method of claim 8, wherein at least one of the primary network and the secondary network is the internet, and at least one of the first address and the second address is an internet protocol (ip) address.
0. 10. The method of claim 8, wherein at least one of the first address and the second address is dynamically assigned.
0. 12. The first communication apparatus of claim 11, wherein the processor further disconnects the first communication apparatus from the primary network after the second connection is established.
0. 13. The first communication apparatus of claim 11, wherein the first communication apparatus has a second address on the primary network.
0. 14. The first communication apparatus of claim 13, wherein at least one of the primary network and the secondary network is the internet, and at least one of the first address and the second address is an internet protocol (ip) address.
0. 16. The non-transitory computer-readable storage medium of claim 15, the method further comprising disconnecting the first communication apparatus from the primary network after the second connection is established.
0. 17. The non-transitory computer-readable storage medium of claim 15, wherein the first communication apparatus has a second address on the primary network.
0. 18. The non-transitory computer-readable storage medium of claim 17, wherein at least one of the primary network and the secondary network is the internet, and at least one of the first address and the second address is an internet protocol (ip) address.
0. 20. The method of claim 19, further comprising disconnecting the first communication apparatus from the primary network after the second connection is established.
0. 21. The method of claim 19, wherein the first communication apparatus has a second address on the primary network.
0. 22. The method of claim 21, wherein at least one of the primary network and the secondary network is the internet, and at least one of the first address and the second address is an internet protocol (ip) address.
|
This is a divisional application of Ser. No. 10/003,047, filed Dec. 6, 2001, now U.S. Pat. No. 6,671,272 which is a divisional of application Ser. No. 09/029,839, filed Mar. 9, 1998, now U.S. Pat. No. 3,377,570 which is a continuation-in-part of application Ser. No. 08/810,148 filed Feb. 25, 1997 now abandoned.
The present invention relates to Internet telephony, i.e., placing telephone calls over a specific secondary network, such as the Internet, by way of a standard telephone connection using the Public Switched Telephone Network (PSTN).
DESCRIPTION OF RELATED ART
The technique of using the Internet to carry on telephone communications is commonly referred to as Internet Telephony (IT) or, sometimes, Voice on the Net (VON). IT is a way to communicate over the Internet that bypasses PSTN toll connections. IT can be advantageous for individuals and businesses that need or want to communicate extensively with others outside of their local calling areas, especially to frequently called numbers.
IT is typically accomplished by what is commonly referred to as Personal Computer-Based Internet Telephony (PCIT). PCIT allows users with properly equipped personal computers to complete long distance telephone calls to one another over the Internet without incurring a toll charge. To do so, the users must have personal computers that are multimedia capable in terms of possessing a sound card, sufficient processing power, a high quality microphone, an adequate modem (preferably 14.4 or faster) and the same specialized software programs, as well as an account with an online service or Internet service provider (ISP) for connection to the Internet via SLIP (the serial-line Internet protocol) or PPP (the point-to-point protocol). Current PCIT techniques are not compatible with shell accounts, which are accounts in which a user logs on through terminal emulation to a remote machine running Unix or the like and accesses the Internet through that remote machine in text mode by typing commands at a prompt.
Several PCIT software packages are on the market. These packages are mutually incompatible; two users wishing to make a PCIT connection must have the same software package. Popular PCIT software packages include those marketed under the names “Iphone” and “Web Phone.”
The “Web Phone” software works in the following manner. The users wishing to speak to each other must both be online for the communication to take place, although they can arrange beforehand to be online at the same time.
Both users run the software, and the software packages on both computers seek each other by referring to each other's Internet protocol (IP) addresses. An IP address can be static, meaning that each user is assigned a single permanent IP address, or dynamic, meaning that a user is assigned a different IP address every time that user logs on. If the users both have static Internet protocol addresses, they can simply store each other's IP addresses beforehand. However, many users, including virtually all users of less expensive ISP's and of online services such as America Online, have dynamic IP addresses. Therefore, before the users can connect to each other, they must log onto a common server so that each one can find out the dynamic IP address which has been assigned to the other user. Either way, once the users have each other's addresses, the software packages can communicate with each other over TCP/IP (transfer control protocol/Internet protocol) ports 21845, 21846 and 21847.
Sound originating on one end is digitized via the microphone and sound card, compressed, and transmitted to the other end as packets over the Internet using TCP/IP, where the packets are decompressed and converted back into sound via the sound card and speakers.
There are, however, disadvantages associated with the present state of IT or VON. Besides the hardware requirements and the difficulty that many users have with configuring their computers to achieve SLIP or PPP connections to their ISPs, until such time as PCIT vendors can agree on standards, the requirement that both users have the same software to communicate with each other will remain. Not only is the hardware described above expensive, but extensive knowledge of computers and the Internet is also required, making IT intimidating to a majority of the population who would otherwise like to take advantage of this capability. There are other disadvantages to PCIT. Its users need to prearrange a time to call each other because both parties must take proactive measures to connect the call and thereby converse with each other.
Internet Telephony also sometimes refers to a new service being planned whereby individuals or businesses may use or pre-subscribe to a special access number and place their long distance telephone calls by way of a long distance carrier who uses the Internet to carry the calls. This service eliminates most of the disadvantages of PCIT, but also eliminates most of the advantages, in that toll and/or usage type charges still apply.
Devices are known for allowing PCIT by letting users initiate a conversation over the PSTN and switching to IT. Such devices exchange information relating to their IP addresses during the PSTN phase of the call so that the IT phase of the call can be completed. However, in such devices, the modem may be set or initialized twice, once for the PSTN phase of the call to exchange the IP address information and once for the IT phase of the call to connect to the Internet. Setting the modems twice is time-consuming. Also, such devices cannot be used for calls which take place entirely by way of IT, since they have no way of exchanging the IP address related information to locate each other.
It is an object of the invention to allow a user to make telephone calls via the Internet without a need for an expensive multimedia-capable personal computer.
It is another object of the invention to allow a user to make telephone calls via the Internet without a need to configure such a computer for a SLIP or PPP connection to the Internet.
It is a further object of the invention to allow a user to select a route for a telephone call (the Internet, the conventional PSTN, a dedicated network, etc.) and to use a single device for the call regardless of which route is selected.
It is a further object of the invention to provide a device and method for Internet telephony which are easy to use, do not require a computer and offer superb voice quality.
To these and other ends, the present invention is directed to a terminal device or Internet switch box (ISB) for connecting a first telephone set and a second telephone set over a selected one of a primary network and a secondary network, the switch box comprising: primary network connecting means for connecting the first telephone set to the primary network; secondary network connecting means for connecting the first telephone set to the secondary network and for establishing a connection over the secondary network between the first telephone set and the second telephone set; relay means for (i) connecting, when the relay means is in a first state, the first telephone set to the primary network connecting means and for (ii) connecting, when the relay means is in a second state, the first telephone set to the secondary network connecting means; and switching means for receiving a switch-over command to switch from the primary network to the secondary network and for controlling, in response to the switch-over command, (i) the relay means to disconnect the first telephone set from the primary network connecting means and to connect the first telephone set to the secondary network connecting means and (ii) the secondary network connecting means to establish the connection over the secondary network between the first telephone set and the second telephone set.
A relatively inexpensive interface device, referred to as an Internet switch box (ISB), is connected to or integrated within the telephone. While the user must possess access to the Internet either directly or via an Internet Service Provider (ISP) in order to use the ISB, the user will not be subject to toll charges other than those incurred using the PSTN to establish the Internet telephone call. The user does not need to understand how a computer works or how to use any PCIT software, since the ISB can be preprogrammed to dial an ISP and to connect via SLIP or PPP. The user need only know how to dial the call using normal PSTN dialing procedures and then simply switch the call to an Internet connection, if available and desirable. Other than the user pressing a button (either on the ISB or telephone keypad) to initiate the Internet telephone call, the ISB takes care of all connection procedures (i.e., handshaking) necessary to set up and maintain the Internet telephone call. While both parties must possess an ISB in order to take advantage of the ISB's IT capabilities, only one party needs to initiate the telephone call in order to establish the Internet connection, so that prearrangement is not required.
Advantageously, the selection among networks may be among the PSTN, selected proprietary networks, or the Internet. It should be noted that the PSTN utilizes circuit switching techniques whereas, for instance, the Internet makes use of packet switching. Circuit switching was specifically designed and is best for analog voice transmissions, whereas packet switching was designed and is best for digital data transmissions. Regardless, either type of switching may be employed for voice or data. The calling party uses the PSTN to first establish the connection between calling and called parties, and then the two parties decide whether or not to use their ISB's to re-establish the connection via a secondary network such as the Internet. The users will consider convenience, cost and connection quality in making this choice. If the telephone call is to another party in the same local calling area, of short duration, or one where, regardless of cost, the stability and voice quality of the connection are essential, then the users typically opt to stay on the PSTN connection and not seek to switch to the Internet. Otherwise, the potential cost savings of simply switching to an Internet connection make doing so preferable.
As indicated, an ISB may be incorporated into a telephone or be a standalone adjunct device connected between the telephone and the telephone line. Additionally, ISB's may be associated with facsimile machines, wireless telephones and multiple line telephone systems, such as key telephone and Private Branch Exchange (PBX) systems, and operate to provide multiple users of such Customer Provided Equipment (CPE) the ability to designate the secondary network handling of their toll calls. According to one embodiment, the ISB will set up a secondary network or Internet telephone call after the PSTN connection has been established and in response to a command to do so by its user(s) as described above. In an alternative embodiment, the ISB may be configured to establish a connection over a secondary network automatically unless commanded not to prior to the call being placed. In either case the called telephone can answer or simply ring before the telephone call can be switched to a secondary network or the Internet. As such, the ISB does not interfere with accepted and customary PSTN procedures in that the PSTN portion of the telephone call is billable only if there is an answer by a live person or an answering machine or voice mail service.
In order to establish a secondary network or Internet connection via the ISB, the user will first dial the PSTN telephone number of the intended call recipient. Once the called telephone is answered, which is a billable PSTN telephone call of short duration, both parties initiate, via a simple key stroke, the switch to the secondary network. The two ISB's disconnect the PSTN call, and each initiates its own call to the other via the secondary network. If the secondary network is the Internet, the connection typically is by way of an Internet Service Provider (ISP) which can be reached, advantageously, by a toll-free telephone call enabling access to the user's Internet service account which, advantageously, has unlimited use or use charges in an amount much lower than the expected PSTN charges. The two ISB's possess information (i.e., addresses, passwords, etc.) necessary to re-connect the telephone call via the secondary network. Each ISB can be programmed to provide call progress tones or to play pre-recorded messages, music, etc., while the users await reconnection. If the call cannot be connected via the secondary network due to access problems at the ISP or otherwise, then each party is so informed by a recognizable audio signal such as a busy signal or a voice recording. Either or both parties can, by pressing appropriate keys, retry their connection via the Internet or reconnect the telephone call over the PSTN. This capability is somewhat analogous to the redial capability on many conventional telephones. Should two parties seek to avoid PSTN charges altogether, they may use this same capability to do so via prearrangement. In so doing, each party need only input the other party's telephone number in addition to pressing the appropriate buttons on the ISB or telephone keypad. Regardless, once the call is connected via the secondary network or the Internet, the parties terminate the call by hanging up, as with any PSTN call.
The present invention thus implements an embedded approach to IT which offers the following advantages. The use of ISB's allows low-cost, easy-to-use, embedded Internet access for telephones. Lower cost is achieved because no PC's are required. Users, many of whom would prefer not to have to configure a PC for Internet access, are offered a familiar PSTN approach which can identify a called party by that party's existing telephone number. This approach also preserves the major advantage of IT, namely, the use of low-cost Internet bandwidth.
While the invention is intended primarily for use with single-line analog telephone sets, it can be adapted for use with other telephone systems, such as DID PBX (direct-in-dial private branch exchange) and Centrex service and with analog or digital mobile telephones such as cellular telephones and PCS (personal communication service) telephones. Also, while the ISB can be built to access the ISP through a dial-up connection, it can alternatively be built to access the ISP through another connection, such as an ISDN (integrated services digital network) connection or a cable modem connection.
The preferred embodiment will now be described in detail with reference to the drawings, in which:
According to a preferred embodiment, the ISB is capable of performing three major tasks: (1) establishing voice telephone calls via the Internet; (2) sending/receiving voice messages via Internet based E-Mail; and (3) interfacing with Internet Audio Servers.
During the execution of each task, one of the following five modes of operation can be assumed by the ISB:
These modes of operation are realized by invoking a collection of resources in the ISB 100 which are under control of the ISB's application module 101. These resources are shown in
Telephone Set Controller (TSC) 102 is a module which controls all signaling activities related to a “Plain Old Telephone” (POT), i.e., on-hook, off-hook, hook-flash, pulse or tone dialing, ringing, ringing trip detection, etc.
Loop/Start (L/S) Line Controller (LLC) 103 is a module which controls all signaling related to a loop start telephone line, i.e., ring detection, line seizure, hold, loop current detection, pulse and tone dialing, etc.
Modem/Facsimile Module (MFM) 104 is a module which provides a modem and facsimile engine to transmit digital data over PSTN line. The baud rates of the modem/fax are determined by data exchange requirements.
Voice Commander (-compresser and expander) Module (VCM) 105 is a module which compresses the linearly sampled voice into low bit rate digital voice suitable for digital telephone applications. The expander part of the module performs the reverse operation.
Tone Generators and Decoders (TGD) 106 is a module which produces and detects all call progress (e.g., dial, busy, special, etc.) and signaling (e.g., dual-tone multifrequency or DTMF, multifrequency or MF, etc.) tones.
Voice Players and Recorders (VPR) 107 is a module which records and plays voice prompts under the direction of the ISB.
Digital Switching Matrix (DSM) 108 is a module which enables the different modules (i.e., TSC, LCC, TGD, VPR, etc.) can be connected together via buses 111 and 112.
Signal Processing Services (SPS) 109 is a module which handles signal processing services such as echo cancellation, speech recognition, pitch adjustment, etc.
Network Connection Module (NCM) 110 is a module which handles all digital networking communication between the ISB and other external digital sources such as the ISP, another ISB, various Internet resources and servers, etc. are handled by this module.
Application Module (AM) 101 is a module which provides the logic flow required to execute the above mentioned tasks.
The following describes several of the operations of the ISB:
1. Programming the ISB: The user uses the telephone keypad and menu button 301 on front panel 302 of the ISB (
Programming can also be accomplished by connecting the ISB to a computer such as an IBM-compatible PC via a serial link or another appropriate link. The programming can be done by entering ASCII commands from the PC through a standard terminal-emulation program or by software written specifically for this purpose. During manufacture, the ISB is programmed with its factory settings through a connection to a computer.
2. Telephone call: The calling party picks up the telephone (goes off-hook) and dials the telephone number of the called party. The ISB monitors and stores the digits dialed. The called telephone rings and is answered by a live person, answering machine or voice mail service. If the called telephone is answered by a live person, the two parties decide whether or not it is appropriate to switch to the Internet. The parties may initiate the switch to the Internet by pressing the appropriate code on the telephone keypad or Internet button 303 in the ISB itself. The ISBs of the calling and called parties then disconnect the PSTN connection (this step is not necessary if the ISBs have multi-line capabilities) and dial their respective ISPs so that each ISB is connected to the Internet. While each ISB connects to the Internet, the person using the ISB hears progress tones, recorded music, or the like.
Once the ISBs are connected to the Internet, they connect to the server, unless (as is rather unlikely) each party knows that the other party has a static IP address and has that static IP address on file. Each ISB sends its telephone number and IP address to the server so that the server has a current IP address corresponding to each telephone number. Each ISB communicates the other party's telephone number to the server to retrieve the other party's IP address. Once each party knows the other party's IP address, the Internet telephone connection begins, and the ISBs send voice packets to each other. The ISBs can also resolve each other's IP address in other ways, such as through e-mail (POP3) servers.
Of course, two users are not precluded from arranging to call each other on the Internet at a certain time, in which case they avoid PSTN charges altogether. However, the use of the ISBs described above offers additional flexibility in that users can choose to prearrange their Internet calls or initiate them over the PSTN.
3. Sending and receiving voice mail messages: The user presses menu button 301 or otherwise issues a command to summon the menu and follows the prompts to send and receive messages. The digitized voices for such messages are sent as binary attachments to e-mail messages; one ubiquitous standard for such binary attachments is called MIME (multimedia Internet mail extensions). Both parties should have e-mail access. If the calling party does not already know the called party's e-mail address, the ISBSS or another server can correlate telephone numbers with e-mail addresses.
The ISB have the capability to dial in to check the e-mail for voice messages periodically. If a voice message is waiting, the ISB can so indicate by providing a flashing LED, by emitting a special tone when the user picks up the telephone, or the like.
4. Internet Audio Server (IAS) calls: These are calls made through the ISB to access IASs, or Internet audio servers, which are Internet servers (such as Web or FTP (file transfer protocol) servers) configured to provide audio information. The user picks up the telephone and presses the menu button 301 on the ISB. The menu system uses voice prompts to prompt the user to access different IASs. The ISB then accesses the selected IAS either by telephone or by dialing the ISP and connecting to the IAS over the Internet. The ISB can resolve the IP address of an IAS either by accessing the server described above or by accessing a conventional domain-name server (DNS), which is a server for correlating IP addresses and domain names such that the DNS provides an IP address when given a domain name. Once an IAS is known, the ISB can store the IP address, since servers provided for access by the general public normally have static IP addresses.
5. ISB special server: As noted above, a server is provided to allow the users of two ISBs to resolve each other's IP addresses. Such a server is known as an ISB special server (ISBSS), and it correlates telephone numbers to IP addresses. The ISBSS can look up an IP address for an ISB which has previously accessed the server and provided information correlating its telephone number and IP address. The ISBSS does this by searching by the telephone number, or the least significant digits of the telephone number, provided by another party wishing to access that ISB. The ISBSS also uses telephone numbers to find e-mail addresses and possibly also the IP addresses of IASs. With the ISBSS, the ISBs do not have to exchange information concerning their IP addresses directly during the PSTN phase of a telephone call.
The ISBSS can also collect and report transactions, statistical data about attempts, completions, etc. by type of call request and customer, for engineering and marketing purposes. The requirements for interfacing, processing and data storage with a computer based server such as the ISBSS will be readily understood by those skilled in the present state of the art. A fuller description of the ISBSS will be set forth below.
6. Compatibility with call waiting, caller ID, and other enhanced telephone features: According to one embodiment of the ISB, call waiting must be inactive to assure Internet call connection continuity. A disable code can be programmed to de-activate this feature when Internet telephone calls are in process. It is presumed that users who are on a long distance call do not want to be disturbed. Such disable codes are known in the art; for example, it is known to configure communication software to disable call waiting by dialing a code such as *70 and pausing before every call. Another embodiment of the ISB not only allows call waiting to function but also incorporate caller ID and other premium telephone services. For example, an ISB can have integrated caller ID and can even indicate whether the caller has an ISB, e.g., by searching by the telephone number through the ISB's database of completed calls.
These and other operations are implemented on hardware and software which will now be described in detail. According to a preferred embodiment, the ISB is implemented by realizing the described modules by way of an existing personal computer or by repackaging the necessary personal computer capabilities into a commercially viable design. In the latter case, the ISB need not include those hardware or software capabilities which are not relevant to the functions which the ISB is expected to perform; therefore, the hardware and software can be radically simplified from those of a personal computer. In particular, the ISB can be implemented in hardware and software compatible with MS-DOS, rather than in the considerably more complicated and expensive hardware and software associated with operating systems such as Windows 95 or Windows NT. In the alternative, a design based on a digital signal processor (DSP) can be employed. Various elements of any designed embodiment such as the modem and vocoder functions can be implemented via hardware or software equivalents. Those skilled in the art are familiar with the computer telephony modules and software libraries which can easily implement the disclosed modules. The following describes a commercially efficient approach, and
The ISB includes PC-compatible microcontroller (microprocessor) 201, such as an Intel 80186 processor or an equivalent. Microcontroller 201 includes integrated timers, direct memory access (DMA) channels, serial links and interrupt handlers and is supported by a memory system 202 including, for example, ROM, SRAM, flash memory, or EEPROM. Microcontroller 201 and memory system 202 together form the main processing unit for the ISB. Memory system 202, besides providing working memory for the operation of the ISB, also stores such code as is needed to operate the ISB. For example, memory system 202 includes code for establishing an Internet connection; such code is analogous to a Winsock dialer on IBM-compatible PCs.
An internal DC-to-DC power converter 213 provides the proper voltages to the various components within the ISB. An appropriate external AC-to-DC adaptor interfaces the ISB to the available AC power alternatives found in the U.S. and elsewhere.
The modem 202 may be implemented most advantageously via a hardware modem or modem chip which is connected to the microcontroller 201 and the Loop Start Line Controller 208 and data access arrangement (DAA) 209, both of which are described below. Modem 202 can be a Rockwell 14.4 modem or any other suitable modem, although it should preferably be capable of a speed of at least 14.4 and should also preferably be upgradeable as new modem standards emerge.
The vocoder 204 may be most advantageously implemented via hardware which is connected to the microcontroller and which has its own SRAM 214. The vocoder provides low bit rate voice compression and decompression and interfaces the Telephone Set Controller 205.
The Telephone Set Controller 205 includes a Subscriber Line Interface Circuit (SLIC) 206 and a CODEC 207 which is, advantageously, connected to the vocoder. CODEC 207 allows SLIP or PPP connection to the Internet.
Loop Start Line Controller 208 includes a Data Access Arrangement (DAA) 209 and is connected to the modem 202 and the telephone line 212.
A 2 FORM C relay 210 is provided, as illustrated in
Telephone 211 should preferably not be the sort of telephone which has its own power source (e.g., cordless telephone or integrated telephone and answering machine) or which manipulates its signaling (e.g., speaker phone with echo suppression technology).
Microprocessor 201 executes the software architecture shown in
The software can be a combination of commercially available software adapted for the ISB and proprietary software written specifically for the ISB. However, the ISB can use commercial, modified commercial or proprietary software or any combination.
As noted above, the hardware of the ISB can alternatively be implemented with a DSP chip. Such an alternative implementation is shown in
The ISB, whether constructed according to
The hardware and software used in the ISB can be analogized in the following manner to the hardware and software of a known PC used for IT:
Function
Known PC
ISB
Digitize voice
Sound card
CODEC
Compress data
Compression
Vocoder or DSP chip
algorithm executed
on CPU
Packetize data
Winsock
portable networking software
ISP access
modem
modem chip
operating system
Windows 95, 98 or NT
ROM DOS
CPU
Pentium ≧ 133 MHz
Intel 80186
user interface
monitor and keyboanl
telephone keypad, earpiece
Buttons 301 and 303 may be used as already described. As an alternative to the buttons, the ISB can be configured to listen to the connection from telephone 211 to detect an off-hook state of telephone 211 and to monitor the digits dialed. If the first digit dialed after the telephone is picked up is a pound sign (“#”), the ISB knows that the user wants to access the ISB's menu system. The ISB generates a voice prompt to prompt the user to select one of the following options by way of the keypad on telephone 211:
Digit
Action
1
Reconnect or retry a call via the Internet
2
Make a new call via the Internet
3
Listen to voice messages
4
Send a voice message
5
Make an Internet test call (to test both the operation of the ISB and
the ISP access)
6
Program the ISB
7
Upgrade the ISB
8
Make an off-net call
9, 0
Reserved for future use
If the menu system is accessed in this manner, the menu button is unnecessary. Also, because making an Internet call is a menu option, the Internet button is also unnecessary. Thus, the hardware and user interface of the ISB are simplified, and the ISB has fewer mechanically actuable components to break. Once a user becomes familiar with the menu system, he need not wait for the voice prompt, but instead can simply pick up telephone 211 and dial # and an appropriate digit to perform the function desired. Also, to cancel any operation, the user can simply hang up.
To produce the voice prompts, the ISB can store sound clips in an appropriate format in memory system 202 and play them to the user through telephone 211. For example, one such sound clip can be a recording of a voice saying, “To reconnect or retry your telephone call on the Internet, press 1.” Just as conventional software can be supplied in different language versions, the ISB can be supplied in different language versions with different stored sound clips.
To cancel or start over, the user hangs up. If the ISB locks up, it can be reset by unplugging and reconnecting the power supply. Alternatively, the ISB can be equipped with a reset button like those on known PCs.
It will be readily apparent from
The ISB includes a housing that can be desk- or wall-mounted. A premises wiring pattern and the number of telephones sharing the same telephone line will dictate the ISB's most advantageous installation.
Any or all components of the ISB which rely on code for their operation can be made software-upgradeable. For example, the modem can be software-upgradeable as modem technology advances and as standards such as the recently announced 56K standard are implemented, and the portions of the memory system containing code for the operation of the microcontroller can be software-upgradeable to allow for the H.323 Internet telephony standard. When the user issues a command to upgrade the software (e.g., by dialing # to access the menu and then by dialing 7), the ISB connects via the user's ISP and the Internet to an upgrade server to download and install the latest version of the ISB software, an operation which typically takes four to six minutes. The previous version of the software can be stored to allow the upgrade to be undone locally with no need for access to the upgrade server; to undo the upgrade, the user dials “0#”. For example, in a 512k EEPROM, 192 kB can be used for DOS and the BIOS (basic input-output system, a set of routines which allow a microprocessor to communicate with other hardware), 384 kB for the current version of the application software, 192 kB for a scratch buffer, and 384 kB for the previous version of the application software. At the factory, the ISB is provided with two copies of the same version of the software; one of these copies is overwritten in the first upgrade, while the other is available to undo the first upgrade. Some upgrades may require assistance from the help desk (to be described below), such as those allowing new extra-cost features.
Each ISB stores information regarding that ISB. Such information can include all information necessary for connecting to the Internet (e.g., telephone number, user I.D. and password for logging onto the ISP). The information can also include a record of other ISBs with which the ISB has interfaced, including data for each other ISB such as the telephone number and the static IP address if any. The oldest and least used entries can be purged periodically.
More specifically, the ISB stores device, server, billing, and owner information and a friends directory. The device information is typically programmed into the ISB at the factory and includes the serial number, the manufacturing date, the hardware version, the software version, and the feature key, which identifies those features which the ISB implements. The server information includes the IP addresses for the various servers which the ISB needs to access, such as the primary and backup ISBSSs. The owner information includes the telephone number, the ISP access telephone number, any scripting required to log onto the ISP, logon name and password, the domain names or IP addresses for the SMTP and POP servers for e-mail, the e-mail address, and the e-mail password. The SMTP server implements the simple mail transfer protocol (SMTP) for sending e-mail, while the POP server implements the post office protocol (POP) for receiving e-mail. Many ISPs use the same server for both protocols. Other mail protocols exist and can be used instead. The server and owner information can be programmed locally by the user or over an Internet connection by an agent at a help desk, which is described in detail below. The friends directory is maintained automatically and in run-time and has a data structure like that shown in the following table:
Record
#
Serial #
Telephone #
E-mail address
Counter
1
100011
202-555-0102
hisname@someserver.com
25
2
100021
703-555-0103
hername@anotherserver.edu
11
* * *
* * *
* * *
* * *
* * *
99
* * *
* * *
* * *
* * *
The counter is increased by one for each conversation with a particular person. When the number of entries to be stored in the friends directory exceeds the number of allowable entries, the entry with the lowest counter can be erased. Alternatively, the time and date of the last conversation can be stored, and the entry whose last conversation has the earliest time and date can be erased.
The steps carded out by both parties in placing an IT call using two ISBs are shown in the flow chart of
During the call shown in
A technique called “double packets” can be implemented to improve voice quality. In this technique, every packet is sent twice. Thus, if packets are dropped or sent out of sequence, voice quality will most likely not suffer. Packet dropping and out-of-sequence packet transmission are usually not a problem when the users' ISPs communicate over a common backbone or over backbones which have a peering arrangement (i.e., freely transmit packets over each other's facilities). However, if the two ISPs communicate over an NAP (network access point), packet dropping and transmission out of sequence are problems, which double packet transmission corrects.
There is a special kind of call known as a self-test call. When the user dials #5, the ISB initiates a call to a call completions server via the user's ISP. If the call is completed correctly, the user hears a recording from the call completions server to that effect. Otherwise, the user knows that there may be a problem with the ISB.
To implement the functionality noted above, the ISB can perform any of several calling operations: passive operation, establishing a connection to the ISP, PTIC (PSTN-to-Internet calling), MMIC (meet-me Internet calling), checking messages, sending messages, etc. These calling operations will now be explained with reference to
Passive operation will be explained with reference to
Connection to the ISP will now be explained with reference to
In case a user's ISP requires a special logon procedure, the ISB can have a scripting facility. This facility allows the ISB to store a logon script and to play the script to satisfy the ISP's logon requirements. The scripting language can be the same as that used for dial-up networking in Microsoft Windows 95, which is known in the art and will therefore not be explained here.
The script can be supplied to the ISB in different ways. For example, the user can compose the script on a PC and transfer the script to the ISB over a serial connection, or the agent at the help desk (to be explained in detail below) can remotely program the script into the ISB. Alternatively, the ISB can store a boilerplate script with various components which can be enabled or disabled remotely by the agent. Still another way of programming the script into the ISB is to log on manually, while the ISB is connected to a PC over a serial connection, and to issue a command to automate the logon, as certain terminal emulation programs do. In any event, it should be possible to allocate 1,024 bytes in memory to store any script.
The operation of making a PTIC call will now be explained with reference to the diagram of
Caller A uses telephone 211A, ISB 100A and ISP 706A, while caller B uses telephone 211B, ISB 100B and ISP 706B. Once the PTIC call is completed, they communicate over Internet 712, generally after communication over the Internet with ISBSS 714.
At the time at which user A dials user B in step 802C, user A's ISB is passive and off hook (step 802A), while user B's ISB is passive (step 802B). As user A dials, his ISB records the digits dialed in the digit buffer in step 804A and enters “PTIC caller” mode in step 806A. Then, in step 808A, user A's ISB becomes “passive,” i.e., acts as a passive pass-through between user A's telephone set and the PSTN. In step 808C, user B's telephone rings, and in step 808B, user B's ISB goes into the “PTIC called” mode. User A talks to user B in step 810C, and once they agree to an IT call, they both hang up in step 812C. During these operations, their ISBs are “passive” (steps 810A, 810B, 812A, 812B). They both pick up their telephones and dial # in step 814C, whereupon their ISBs go into menu mode in steps 814A and 814B. They both dial 1 in step 816C to initiate ISP connections in steps 816A and 816B. While they both monitor (listen for the ring-back tone) in step 818C, their ISBs remain connected to their ISPs in steps 818A and 818B. The ISBs connect to the ISBSS in steps 820A and 820B, and the users hear ring-back tones in step 820C. The ISB data are exchanged in steps 822A and 822B, and the users hear a confirmation tone in step 822C. While the users continue their conversation in step 824C, the ISBs undergo dynamic adjustment in steps 824A and 824B. If either user's ISP drops that user's connection, that user can simply dial #1 again to be reconnected to the ISP and thus to the other user.
Dynamic adjustment will now be described with reference to
The hardware shown in
The ISB can be configured to give the following error messages, which can be used by either a user or a technical support person to determine why a call has not been completed normally:
Error code
Problem
0
No dial tone
1
ISP busy
2
ISP did not answer
3
Logon failed, no logon prompt
4
Logon failed, no password prompt
5
Insufficient band rate
6
PPP authentication failed
7
PPP failed
4
PPP timed out
9
Server did not connect
10
Server did not respond
11
Server rejected transaction
12
Reception terminated
13
Transmission terminated
14
Number not programmed
Error codes 20-24 refer to sending a voice mail
message, to be described below.
20
DNS did not answer
21
SMTP address wrong
22
SMTP user ID wrong
23
SMTP rejected message
24
SMTP disconnected
Error codes 30-34 refer to receiving a voice
mail message, to be described below.
30
DNS does not answer
31
POP address wrong
32
POP user ID/password wrong
33
POP stopped sending
34
POP disconnected
Error codes 40-42 refer to user programming of the
ISB through the telephone keypad.
40
Character not defined.
41
Character entered is not permissible where entered.
42
Too many characters.
The error codes can be given to the user in the form of voice prompts. For example, if there is no dial tone, the ISB can play a first sound clip of a voice saying, “I'm sorry, but there is a problem with your Internet access; please try again. Error code . . . ” and a second sound clip of a voice saying, “zero.” The user can consult the manual to find the significance of error code 0. In the case of errors which require a call to technical support, the user can make a note of the error code.
Variations on the PTIC call avoid incurring PSTN charges at all. Such variations include a previously agreed-upon signal that a particular person is calling, such as letting the telephone ring twice and than hanging up, and letting the telephone ring just long enough for caller ID information to be sent and then hanging up. The users then call each other back over the Internet as for a meet-me Internet call, which will now be described.
The MMIC, or meet-me Internet call, is a simplified version of the PTIC. In the MMIC, the users have previously agreed to call each other at a certain time, so no PSTN handshaking is required.
In the MMIC, both users dial #2 to access MMIC operation in their ISBs via the menu. User A enters user B's number, which user A's ISB verifies in its directory, and user A's ISB enters MMIC-caller mode. User B enters user A's number, which user B's ISB verifies in its directory, and user B's ISB enters MMIC-called-party mode. The rest of the conversation proceeds as for a PTIC call, i.e., steps 814A-C to 824A-C in
Once two users have already called each other using the ISBs or otherwise added each other to their friends databases, MMIC can be used with a speed-dialing technique in which a user dials the last six digits of the other user's telephone number followed by #, regardless of where in the world the other user is, thereby avoiding long and confusing digit sequences for conventional international dialing. The ISB then matches the dialed last six digits with the friends data stored in the ISB to identify the other ISB which is to be called.
The last six digits can be used for a unique identification of up to a million other ISBs. While it is possible that a user's friends database will contain two entries having the same last six digits, this possibility is remote. Even if such a situation does arise, the ISB can be configured to prompt the user to dial more digits to identify the called party uniquely.
Checking and sending messages will now be explained with reference to
The ISB can also be configured to poll the ISP periodically (e.g., four times a day or some other interval which is either set in the factory or programmed by the user), whenever a call is completed over IP, or both to check for message and to give an indication to the user via an LED or the like when messages are waiting. In one configuration, polling takes place only when all three of the following conditions are satisfied: (1) the polling period set in the ISB has expired, (2) the telephone has not been in use in the last two minutes and (3) no ring signal has been received in the last two minutes. Of course, the ISB can be equipped with an internal clock, such as those used in conventional IBM-compatible PCs, to allow periodic polling.
Each voice mail message is stored on the recipient's POP server in the form of an e-mail message with the sender's e-mail address listed in the “From:” field, a standard subject such as “ISB voice mail message” and a MIME attachment of the voice mail message in an appropriate sound file format. If the recipient checks his e-mail on the POP server with a conventional email program such as Eudora, he will see such message interspersed among conventional e-mail messages. The ISB can distinguish the voice mail messages from the conventional e-mail messages by the subject.
The ISBSS will now be described in detail. The functionality described for the ISBSS can be implemented on a Sun Microsystems workstation running Solaris 2.6 or on any other sufficiently powerful computing device running an appropriate operating system. The server program executed by the ISBSS can be written in C++ or in any other suitable language. The primary purpose of the ISBSS, but not the exclusive function, is to provide connection information for two ISBs to engage in an IT call, since it is contemplated that the ISBs will not exchange information during the PSTN portion of the call. In addition, the ISBSS documents each completed call and each request for any other service, such as voice messaging and software upgrade requests, requested from ISBs and supported by the vendor of the ISBs.
The ISBSS is an iterative server. The server functions can be implemented in a single process and do not require threads. Each IT call involves two connections to the ISBSS, one from each of the ISBs. Each connection is kept open at most 200 msec after the three-way handshake is complete. The ISBSS software makes no blocking calls to any kernel function unless the ISBSS software is completely idle. In any connection to the ISBSS, there is one datagram sent in each direction.
The ISBSS provides service to the users of the ISBs by facilitating an exchange of IP addresses between two ISBs whose users want to communicate with each other. It does so by accepting a TCP connection request from each client, matching corresponding connection requests and sending the IP address of one of the ISBs to the other ISB. Otherwise, the ISBs might have to communicate their IP addresses to each other during the PSTN phase of the call. Such a procedure would require the modems of the ISBs to be set twice, once for the PSTN phase of the call and once for the IT phase of the call, and would render the MMIC call impossible. The use of the ISBSS allows the ISBs to set their modems only once, for the IT phase of the call, and makes the MMIC call possible.
The operation of the ISBSS will be described with reference to the flow chart of
By holding connection requests in a data structure in this manner, the ISBSS can avoid holding open a TCP connection to any particular ISB for more than a few microseconds, thus reducing load on the ISBSS. In fact, the ISBSS can break the TCP connection immediately upon receiving the connection request.
The ISBSS can also send commands to an ISB while processing a connection request. Such instructions can, for example, instruct the ISB to modify the friends data or other data stored locally in the ISB.
As the number of ISBs in use increases, more ISBSSs can be added. Multiple ISBSSs can coordinate their services; for example, an ISBSS can send an instruction to an ISB if the connection request should be made to another ISBSS.
The ISBSS stores telephone numbers in BCD (binary coded decimal) notation with the least significant digit of the telephone number stored in the most significant nibble (four bits) of the first byte (8 bits) of the telephone number string. With this approach, the ISBSS can allow the possibility of six-digit dialing to any ISB in the world. The code to implement this feature is shown in
A state diagram of the ISBSS is shown in
Idle (0): The default state, in which the ISBSS does housekeeping on its internal data structures while waiting for requests for service which would send it into some other state.
ISB Connection Request (4): The ISBSS enters this state after completion of a three-way handshake. The ISBSS accepts all pending connection requests at this time.
ISB Connection Read (5): The ISBSS enters this state when a particular connection has data ready to be read by the ISBSS. The data are read, verified and processed. The need to write the given connection is announced.
ISB Connection Write (6): The ISBSS enters this state only when a particular connection is ready to write the single datagram which the ISBSS writes to each connection. The write takes place, and the disconnect timer is set to expire in a predetermined time, such as 200 msec.
ISB Connection Disconnect (7): The ISBSS enters this state only when the disconnect timer expires for a particular connection. The ISBSS aborts the connection and frees up any space used to maintain the connection.
Telnet Connection Request (1): In addition to serving ISB requests, the ISBSS has a Telnet-like interface for issuing commands to the ISBSS. The ISBSS enters this state only when the listening service indicates that a request for connection has been completed. Only one such Telnet connection is permissible at a time. Each new request results in a dropping of the previous request. The commands include -A to set a parameter (such as the connection list time out in seconds and the billing file size in records, with the syntax being -A parametername newvalue), -B to dump the billing file, -C list to list the commands currently available, -C set (actual command) to send that command to all connection requests, -H for help, -L for a parameter list, -M n to monitor for n minutes if n>0 or to turn off monitoring if n=0, -Q (password) to quit, -T on or -T off to turn testing on or off, and -V (serial number)(status) to add the given serial number to the list of invalid serial number if (status)>0 or to remove the given serial number from the list of invalid serial numbers if (status)=0.
Telnet Connection Read (2): The ISBSS enters this state only if a command has been received on the Telnet connection and is ready to be read.
Telnet Connection Write (3): Everything which needs to be sent to the Telnet connection is buffered asynchronously in a message list. The ISBSS enters this state and sends a single message if the message list is not empty.
In a connection with an ISB, the ISBSS receives a connection data structure and sends a response data structure. The connection data structure is shown in
The ISBSS is able to monitor its own behavior over a specified range of any number of minutes. The number of minutes is specified by a Telnet command described above. The output of the monitoring process is shown in an illustrative example in
The ISBSS is also able to maintain a log of any errors or suspect situations which arise in running the server program. A sample log file is shown in
While it is contemplated that the ISBSS will be a public server accessible to all ISB users, it is also possible that an ISBSS will be supplied, either as a workstation with the software installed or as software for installation on a separately supplied workstation, to an organization which wishes to maintain its own dedicated ISBSS to supply connection information to ISBs within that organization. The ISBs can be programmed to use this dedicated ISBSS for calls within the organization or a public ISBSS for other calls, which are called off-net calls and initiated by dialing #8. Off-net calls can also be made by users of the public ISBSS to call one another via a backup ISBSS when their usual ISBSS is down and automatic reroute routines fail.
MMIC calls are treated similarly to PTIC calls. In MMIC calls, it does not matter which ISB is the calling ISB and which is the called ISB, so that the ISBSS can assign these roles arbitrarily. In an MMIC call, the users may not coordinate the time of their call properly, in which case the calling party's request remains in the queue in the ISBSS. Either the ISB or the ISBSS can be configured to wait a certain period of time and request via a voice prompt that the user try the call again later.
In sending voice mail, the ISBSS has no involvement beyond sending a “Go ahead and send your voice mail” message, whereupon the ISBSS disconnects. In the Internet test call, the ISBSS disconnects after sending a “test complete” message.
The ISBSS can be used to program the ISB automatically as needed. The ISBSS uses the same commands which would be used to program the ISB from a PC over a serial connection. The ISBSS programs server information, e.g., the ISBSS's IP address and the feature key.
Another use of the ISBSS is to notify a customer that an upgrade is available. Whenever the ISB contacts the ISBSS, the ISBSS can supply the current software version number, which is compared with the version number of the software in the ISB. If the current version number is higher, an LED lights up on the ISB to inform the customer of the availability of the upgrade. The ISBSS supplies the ISB with the IP address of the upgrade server from which the upgrade is available and then disconnects.
In the programming and upgrade notification operations just described, the ISBSS can send the following commands to the ISB:
Each connection to the ISBSS is accompanied by data describing the service most recently completed by the connecting ISB (usually about the most recently connected telephone call before the current call request). Such data are written to a log file for future processing. Other servers besides the ISBSS can be used. For example, a backup ISBSS can be added and can become active when the main ISBSS fails or passes control. Also, auxiliary servers such as an upgrade server, an inquiry server, an H.323 server, a commercial server and the like can be used.
particular server which can be used with the ISB system is called a billing server. The billing server maintains information regarding each completed IT call for billing purposes. The ISBSS can supply this information to the billing server. The billing record for each call includes the caller telephone number, the caller serial number, the called telephone number, the called serial number, the start time and date, the call duration and the quality of the connection. To determine the quality of the connection, the billing server or another server can maintain a statistical record, either globally or for each call. The statistical record can include such information as the percentage of lost packets, the percentage of late packets, the percentage of packets out of sequence, the percentage of discarded transmission packets, the percentage of discarded reception packets, and, for each of the parties to the call, the baud rate, the compression rate, and the frames.
The billing information is collected for all different transactions of an ISB. To make this process more efficient, the billing information about a transaction is passed to the billing sever at the beginning of the next transaction.
The ISB generates a billing record as follows. When the ISB contacts the ISBSS for a transaction, the ISB receives the current time from the ISBSS and produces a partial billing record which includes the start time and the telephone number of the other party (the latter field being left blank when it is inapplicable, e.g., when checking messages). At the end of the transaction, the ISB adds the duration to the partial billing record to produce a complete billing record, which is provided to the billing server at the beginning of the next transaction.
A feature which a company selling ISBs can provide to enhance the functionality of the ISBs is called the “help desk.” Through the help desk, customer service agents can assist customers by remotely programming their ISBs, answering questions about the service, upgrade the software in the ISBs, etc.
Programming of the ISB from the help desk takes place in the following manner. The customer and the agent engage in a conversation, either by IT or by the PSTN. If the agent decides that the customer's ISB 100C is to be remotely programmed from the help desk, the agent instructs the customer to dial *0# into telephone 211C. The agent verifies that the customer's ISB 100C has accepted this code to go into voice-over-data mode and enters a similar command to set his own ISB 100HD to voice-over-data mode. The ISBs 100C and 100HD perform a modem handshaking and then start a PPP link between them. Once the link is established, the bandwidth is shared between voice and data, and the agent and the customer can resume their conversation while the agent accesses, examines and programs the customer's ISB 100C.
The agent's computer or data terminal 908 has software to allow the agent to access, examine and program the customer's ISB 100C in this manner. The software displays a window into which the agent enters his own identifying information, device data such as the serial number, feature key and hardware and software versions, server IP addresses, and the user data. The window also has buttons to allow the agent to read the data stored in the customer's ISB, write data to the customer's ISB, activate voice-over-data mode, save information about the customer's ISB to disk for future reference, and load that information from disk. The window offers menu options to allow the agent to log on and off his position at the help desk, to change the serial port settings for his position at the help desk, to select the source for data being accessed as local (the help desk position) or remote (the customer's ISB) and the like.
As those skilled in the art will readily appreciate, the various components described above form a coherent system which is shown in
The present invention can be adapted for use with the H.323 communication standard, which will now be described briefly with reference to
H.323 system 1300 is implemented on LAN (local-area network) 1302. Terminals 1304 are used by users to communicate; each terminal 1304 can include an ISB, with or without video capabilities, or an PC with audio or audio-video capabilities. Gateway 1306 provides interoperability with other networks, e.g., over PSTN 1308 or ISDN line 1310. MCU (multipoint control unit) 1312 control conferencing among three or more terminals. Gatekeeper 1314 performs network functions such as bandwidth control and translation between IP addresses and names by which terminals 1304, gateway 1306, etc. are known to LAN 1302.
The ISB software is written such that at any time during the operation the user can terminate whichever operation is in progress by simply hanging up the telephone and can hear a dial tone by picking up the telephone again. There might be instances in which the hang-up is not recognized by the software because of unexpected interactions between the software and real-life conditions. To prevent the ISB from locking up and possibly blocking the telephone from the user, a watchdog timer can be implemented to recover from these situations and reset the system. In all other instances in which the ISB recognizes that an error has occurred, it plays a prompt which in general terms explains the condition followed by an error code which helps the user to troubleshoot the problem by referring to the manual or which helps the agent at the help desk to diagnose the problem. The error codes have been listed above, although, of course, other error codes could be assigned as needed.
In the instances in which the ISB expects the user to enter data or hang up, a timer can be set with a predefined time-out value. If the user does not respond within time-out period, the prompt is repeated. This process can be repeated up to three times, and if there is no response from the user, then the ISB goes on-hook and, after a short delay, back off-hook.
The ISB can be tested at the factory or elsewhere in the following manner. The ISB is connected to a telephone and to a computer in the manner described above. The computer has appropriate testing software installed thereon. The tester makes a call through the ISB to a second ISB which has been tested and is known to work properly. Any aspect of operation of the ISB under test can be tested, and a report can be generated.
The foregoing detailed description covers interfacing a wireline analog version of the ISB and is illustrative of the various preferred embodiments of the present invention which also include wireline digital versions which are ISDN or LAN based as well as wireless analog or digital versions, either cellular or PCS (personal communication systems). The ISB can also be adapted to work with facsimile machines. The invention is not limited to embodiments using a SLIP, PPP or other dialup connection to the Internet; instead, any connection to the Internet or another secondary network, such as a T1 line or a cable modem, can be used. Also, while it is contemplated that a caller will usually want to speak to one called party at a time, conference calls can be implemented with no difficulty. In addition, ISBs can be made with inexpensive digital cameras and LCD screens to allow videophone service by using Internet audiovisual conferencing software such as CU-Seeme. ISBs can also be provided with encryption. Moreover, modifications disclosed separately can be combined in any technically feasible manner, while modifications disclosed together can be implemented separately wherever technically feasible. It will be appreciated that numerous variations and changes can be made not only to provide a range of services but also to interface the many different devices used to access the PSTN, including personal computers and laptops, without departing from the scope of the invention as defined in the accompanying claims.
Vaziri, Faramarz, Wimsatt, John D.
Patent | Priority | Assignee | Title |
10111076, | Sep 21 2004 | AGIS HOLDINGS, INC ; AGIS SOFTWARE DEVELOPMENT LLC | Method to provide ad hoc and password protected digital and voice networks |
10111080, | Sep 21 2004 | AGIS SOFTWARE DEVELOPMENT LLC | Method to provide ad hoc and password protected digital and voice networks |
10292033, | Sep 21 2004 | AGIS HOLDINGS, INC ; AGIS SOFTWARE DEVELOPMENT LLC | Method to provide ad hoc and password protected digital and voice networks |
10299100, | Sep 21 2004 | AGIS SOFTWARE DEVELOPMENT LLC | Method to provide ad hoc and password protected digital and voice networks |
10341838, | Sep 21 2004 | AGIS SOFTWARE DEVELOPMENT LLC | Method to provide ad hoc and password protected digital and voice networks |
10645562, | Sep 21 2004 | AGIS SOFTWARE DEVELOPMENT LLC | Method to provide ad hoc and password protected digital and voice networks |
Patent | Priority | Assignee | Title |
5473676, | Sep 27 1990 | Rocket Software, Inc | Telephone handset interface for automatic switching between voice and data communications |
5553122, | Jan 28 1994 | EMPIRE RESOURCES, INC | Universal wedge-type telephone adaptor for computer system |
5608786, | Dec 23 1994 | PayPal, Inc | Unified messaging system and method |
5724389, | Dec 08 1995 | Motorola, Inc | Method and apparatus for detecting a presence of a predetermined baud rate |
5726976, | Apr 06 1993 | Nortel Networks Limited | Congestion sense controlled access for a star configured network |
5732078, | Jan 16 1996 | HANGER SOLUTIONS, LLC | On-demand guaranteed bandwidth service for internet access points using supplemental user-allocatable bandwidth network |
5809128, | Nov 01 1996 | Verizon Patent and Licensing Inc | Method and apparatus permitting notification and control of blocked incoming calls over a data network |
5867495, | Nov 18 1996 | Verizon Patent and Licensing Inc | System, method and article of manufacture for communications utilizing calling, plans in a hybrid network |
5974043, | Sep 16 1996 | Solram Electronics Ltd. | System and method for communicating information using the public switched telephone network and a wide area network |
6009469, | Sep 25 1995 | STRAIGHT PATH IP GROUP, INC | Graphic user interface for internet telephony application |
6011794, | Sep 09 1996 | CHARTOLEAUX KG LIMITED LIABILITY COMPANY | Internet based telephone apparatus and method |
6064653, | Jan 07 1997 | Verizon Patent and Licensing Inc | Internetwork gateway to gateway alternative communication |
6122255, | Apr 18 1996 | Verizon Patent and Licensing Inc | Internet telephone service with mediation |
6243373, | Nov 01 1995 | RPX Corporation | Method and apparatus for implementing a computer network/internet telephone system |
6243376, | Aug 13 1997 | Mediaring Ltd | Method and apparatus for making a phone call connection over the internet connection |
6324264, | Mar 15 1996 | Telstra Corporation Limited | Method of establishing a communications call |
6373835, | Aug 13 1997 | Spice i2i Limited | Method and apparatus for making a phone call connection over an internet connection |
6584094, | Sep 12 1996 | AVAYA Inc | Techniques for providing telephonic communications over the internet |
6597686, | Apr 22 1997 | HANGER SOLUTIONS, LLC | Apparatus and method for internet telephony routing |
6614780, | Jan 02 1998 | WSOU Investments, LLC | Internet calling apparatus and method |
6711241, | Jun 26 1996 | Verizon Patent and Licensing Inc | Internet telephone service |
WO9531060, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 11 2008 | Sony Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Mar 10 2014 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jun 26 2014 | ASPN: Payor Number Assigned. |
Mar 05 2018 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jan 21 2017 | 4 years fee payment window open |
Jul 21 2017 | 6 months grace period start (w surcharge) |
Jan 21 2018 | patent expiry (for year 4) |
Jan 21 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 21 2021 | 8 years fee payment window open |
Jul 21 2021 | 6 months grace period start (w surcharge) |
Jan 21 2022 | patent expiry (for year 8) |
Jan 21 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 21 2025 | 12 years fee payment window open |
Jul 21 2025 | 6 months grace period start (w surcharge) |
Jan 21 2026 | patent expiry (for year 12) |
Jan 21 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |