A virtual private branch exchange (PBX) system that routes calls within a packet-switching network. login information is received from a data device. The login information includes an alias identifying a user at the data device and a network address identifying the location of the data device on the packet-switching network. The virtual private branch exchange system associates the user's private branch exchange extension with the network address and routes calls to the user's (PBX) extension to the data device on the basis of the network address of the data device.
|
1. A method of routing calls within a network, comprising the steps of:
receiving from a data device login information including an identifier identifying a user at the data device and a network address identifying the location of the data device on the network; associating a private branch exchange extension of the user with the network address; receiving a call to the user's private branch exchange extension; and routing the received call to the data device.
8. A virtual private branch exchange system implemented on a network, comprising:
means for receiving from a data device login information including an identifier identifying a user at the data device and a network address identifying the location of the data device on the network; means for associating a private branch exchange extension of the user with the network address; means for receiving a call to the user's private branch exchange extension; and means for routing the received call to the data device.
19. A computer readable medium storing program instructions for execution on a computer system, which when executed by a computer, cause the computer to perform the steps of:
receiving from a data device login information including an identifier identifying a user at the data device and a network address identifying the location of the data device on the network; associating a private branch exchange extension of the user with the network address; receiving a call to the user's private branch exchange extension; and routing the received call to the data device.
15. A virtual private branch exchange system implemented on a network, comprising:
a memory configured to store information associating a user with a private branch exchange extension of the user; a directory unit configured to receive from a data device login information including an identifier identifying the user at the data device and a network address identifying the location of the data device on the network, configured to access the memory to associate a private branch exchange extension of the user with the network address, configured to process information of a received call, the information including the user's private branch exchange extension, and configured to route the received call to the data device.
2. A method according to
associating an identifier identifying the user with the user's private branch exchange extension.
3. A method according to
linking the user's private branch exchange extension to the network address of the data device in response to receiving the user's identifier.
4. A method according to
receiving from the data device a disconnect command indicating that the user desires to log off of the network.
5. A method according to
disassociating the network address from the user's private branch exchange extension in response to receiving the disconnect command.
6. A method according to
receiving from another data device other login information including the identifier identifying the user at the other device and another network address identifying the location of the other data device on the network; associating a private branch exchange extension of the user with the other network address; receiving another call to the user's private branch exchange extension; and routing the other call to the other data device.
7. A method according to
receiving the user's identifier from different data devices connected to the network at different times; tracking locations of the user on the network on the basis of the respective network addresses of the different data devices; and routing calls to the one of the different data devices from which the user's identifier was last received.
9. A virtual private branch exchange system according to
means for associating an identifier identifying the user with the user's private branch exchange extension.
10. A virtual private branch exchange system according to
means for linking the user's private branch exchange extension to the network address of the data device in response to receiving the user's identifier.
11. A virtual private branch exchange system according to
means for receiving from the data device a disconnect command indicating that the user desires to logoff of the network.
12. A virtual private branch exchange system according to
means for disassociating the network address from the user's private branch exchange extension in response to receiving the disconnect command.
13. A virtual private branch exchange system according to
means for receiving from another data device other login information including the identifier identifying the user at the other device and another network address identifying the location of the other data device on the network; means for associating a private branch exchange extension of the user with the other network address; means for receiving another call to the user's private branch exchange extension; and means for routing the other call to the other data device.
14. A virtual private branch exchange system according to
means for receiving the user's identifier from different data devices connected to the network at different times; means for tracking locations of the user on the network on the basis of the respective network addresses of the different data devices; and means for routing calls to the one of the different data devices from which the user's identifier was last received.
16. A virtual private branch exchange system according to
17. A virtual private branch exchange system according to
18. A virtual private branch exchange according to
20. A computer readable medium according to
associating an identifier identifying the user with the user's private branch exchange extension.
21. A method according to
linking the user's private branch exchange extension to the network address of the data device in response to receiving the user's identifier.
22. A computer readable medium according to
receiving from the data device a disconnect command indicating that the user desires to logoff of the network.
23. A computer readable medium according to
disassociating the network address from the user's private branch exchange extension in response to receiving the disconnect command.
24. A computer readable medium according to
receiving from another data device other login information including the identifier identifying the user at the other device and another network address identifying the location of the other data device on the network; associating a private branch exchange extension of the user with the other network address; receiving another call to the user's private branch exchange extension; and routing the other call to the other data device.
25. A computer readable medium according to
receiving the user's identifier from different data devices connected to the network at different times; tracking locations of the user on the network on the basis of the respective network addresses of the different data devices; and routing calls to the one of the different data devices from which the user's identifier was last received.
|
The present application is a continuation of U.S. patent application Ser. No. 09/441,741, entitled "Virtual PBX System," filed Nov. 17, 1999, now U.S. Pat. No. 6,393,017, which is incorporated herein by reference in its entirety.
1. Field of the Invention
The present invention relates generally to a telephony system, and more specifically to a virtual private branch exchange (PBX) system for a packet-switching network (PSN).
2. Discussion of the Background
A PBX is an automatic telephone switching system that enables users within an organization to place calls to each other without having to access a public switched telephone network (PSTN). Users can also place calls to outside numbers via the PBX. PBXs are typically located on the premises of a customer and provide a great deal of control and flexibility in the customer's communications. PBXs are well known and are described, for example in Stallings, "Data and Computer Communications," 4th Edition, MacMillan Publishing Co., New York, 1994, which is incorporated herein by reference.
One approach to implementing a PBX involves a virtual PBX call processing method in which a packet switching system establishes a virtual circuit between each distinct pair of user packet stations in a group. The user packet stations exchange signaling packets via the virtual circuits and respond to such packets by coordinating the initiation and disconnection of voice, data, or image calls. All call processing, including the provision of features, such as call forwarding and automatic call back, is accomplished by the stations without the aid of the switching system. Thus, all of the intelligence of the system is on the terminal side of the system and not on the network side. Consequently, telephony agents and terminals are required to process inbound and outbound calls and perform routing. No dynamic tracking of locations is performed by this system, and all of the terminal locations are static.
Methods of using Internet based communication standards for telephone communication have been developed for use with conventional PBXs. These methods simply (1) permit remote telephone access to an existing PBX system via a PSTN and (2) link Internet Protocol (IP) telephony clients to an existing PBX system via an H.323 gateway. H.323 is an ITU (International Telecommunications Union) standard that provides a set of specifications for equipment and services for use with multimedia communications over a network. An example of how IP telephony clients are linked to an existing PBX system via an H.323 gateway is described in http://quicknet.net/support/AppNotes/AN00004.htm, which is incorporated herein by reference. However, such systems still incorporate a conventional PBX, which handles call referencing and switching.
Accordingly, one object of this invention is to provide a virtual PBX system for a packet-switching network (PSN), where the intelligence of the virtual PBX system is located in the network rather than in the terminals.
It is another object of the present invention to provide a PBX system for a PSN that does not require telephony equipment.
It is yet another object of the present invention to track locations of users of the virtual PBX system in real time so that users are not required to maintain static locations.
It is still yet another object of the present invention to track users'locations for call and message delivery each time a user connects to the PSN.
It is still a further object of the present invention to provide connectivity between the virtual PBX system of the present invention and existing public switched telephone networks (PSTNs) and existing PBX systems.
These and other objects are achieved according to the present invention by providing a novel method, system, computer program product, and data structure in which login information is received from a data device. The login information includes an alias identifying a user at the data device and a network address identifying the location of the data device on the PSN. The user's PBX extension is associated with the network address of the data device, and calls are routed to the user's PBX extension to the data device on the basis of the network address of the data device. In this manner, a virtual PBX system for a PSN is implemented. Advantageously, the intelligence of the virtual PBX system is located in the network instead of in the terminals (e.g., the data device).
Preferably, information that uniquely identifies a user is linked to the user's PBX extension. As a result, the virtual PBX system of the present invention does not require conventional telephony equipment to route calls.
The location of the user can be dynamically tracked by storing the network address of the data device when the user logs onto the PSN with the data device. If the user logs onto and off of the PSN with different data devices, then the inventive virtual PBX system is able to track the location of the user by dynamically storing the network address of the data device that is currently connected to the PSN under the user's alias. When the user disconnects from or logs off of the PSN, the virtual PBX system disassociates the network address of the data device that is being disconnected from the PBX extension of the user. Preferably, the network address of the data device is an Internet Protocol (IP) address.
Additionally, known gateways provide connectivity between the virtual PBX system of the present invention and existing PSTNs and existing PBX systems. Thus, the virtual PBX system can complement, or be used independently of, conventional telephony networks.
A more complete appreciation of the invention and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views, and more particularly to
The data devices 102 and 104 can be personal computers, palmtop computers, laptop computers, or any other terminal, endpoint, or device suitable for transmitting and receiving data (e.g., voice data) over a packet-switching network (PSN). The data devices 102 and 104 preferably include microphones and speakers or other suitable equipment for sending and receiving voice messages over the packet-switching network 106. The data devices 102 and 104 may also be portable devices for wireless communication with the packet-switching network 106 and for sending and receiving voice data over a PSN.
The data device 102 includes an agent 103, and the data device 104 includes an agent 105. The agents 103 and 105 are software (e.g., Web browser software) or circuitry for allowing users to send and receive voice packets through the data devices 102 and 104, respectively, to the packet-switching network 106. Such agents (also called telephony agencies) are known. An example of an agent is MICROSOFT NETMEETING. Also, agents are described in U.S. Pat. No. 5,867,494 to Krishnaswamy et al., entitled "System, Method and Article of Manufacture With Integrated Video Conferencing Billing in a Communication System Architecture," which is incorporated herein by reference. Preferably, the agents 103 and 105 provide a graphical user interface for visually representing to a user various programs, files, and options for initiating and receiving calls, accessing user options, and accessing message options, for example. User and message options are described below in conjunction with FIG. 6.
The packet-switching network 106 is any suitable network for relaying or transmitting packets, such as the Internet, a portion of the Internet, a backbone network, a local area network (LAN), or a wide area network (WAN). Packet-switching networks are known and are described, for example, in Keiser and Strange, "Digital Telephony and Network Integration," 2nd ed., Chapman & Hall, New York, 1995, which is incorporated herein by reference. The packet-switching network 106 connects the data devices 102 and 104 as well as the processor 108 and the directory 112. Thus, the processor 108 and the directory 112 may form a portion of the packet-switching network 106. The packet-switching network 106 may operate independently of a conventional PSTN or, as shown in
The processor 108 is any device suitable for interpreting and executing instructions, such as a general purpose computer, a server, or dedicated circuitry. The processor may also be implemented with software such as Web server software that serves to clients (e.g., the data devices 102 and 104) pages with information retrieved from the object storage database 110 and/or the directory 112, for example.
The processor 108 receives information regarding calls to be made to and from the data devices 102 and 104. The information received includes information identifying locations of users (e.g., IP addresses of the data devices 102 and 104, user's PBX extensions, and/or e-mail addresses) and the telephone number and/or extensions of the originators of outgoing calls and the recipients of incoming calls.
The processor 108 and the directory 112 may be implemented separately or on a single computer, for example. In one embodiment, a single processor 108 is physically separate and implemented separately from multiple directories 112, with each directory 112 corresponding to a group of customers. Preferably, the groups of customers are arranged logically; for example, all of the users within a single company or other organization can be organized into the same group. The processor 108 is configured to receive information from the packet-switching network 106 and query the directory 112 for additional information, based on the information that the processor 108 receives from the packet-switching network 106.
The processor 108 includes, and/or communicates with, one or more object storage databases 110. The processor 108 may communicate with the application call processing (ACP) system 130 directly, as shown in
The object storage databases 110 store, organize, and sort information for the users of the virtual PBX system 100. The information stored in the object storage database 110 includes voice messages, e-mail, faxes, images, documents, and any other information that a user desires to store and access with the data devices 102 and 104.
The directory 112 receives queries from the processor 108, accesses the directory database 114, and uses information received from the processor 108 to cross reference additional information about users stored in records and the directory database 114. Information that the directory 112 retrieves from the directory database 114 is sent to the processor 108. Thus, the directory 112 performs functions such as determining the terminal points where a user can be reached, determining the user's PBX extension, and/or a network address of a data device. This information is sent to the processor 108 from the directory 112 on the basis of queries received from the processor 108.
The directory 112 can also perform all or some of the functions performed by the processor 108. Likewise, the processor 112 can perform all or some of the functions performed by the directory 112. Thus, it is not necessary to have both a processor and a directory. As shown in
The directory database 114 stores records that associate users'aliases with their PBX extensions, group ID numbers, network addresses, and the one or more locations corresponding to each user's PBX extension.
The traditional telephony network 116 includes one or more PBXs 118, telephones 120, a PSTN 122, fax machines 124, modems 126, one or more packet network telephony gateways 128, and one or more ACP systems 130.
The PBX 118 is any conventional PBX, and the PSTN 122 is any conventional PSTN. Conventional PBXs and PSTNs are described in Keiser and Strange, "Digital Telephony and Network Integration," 2nd ed. and in Stallings, "Data and Computer Communications," 4th ed. The telephones 120 are conventional and are connected to, and communicate with, the PBX 118 and the PSTN 122. The fax machines 124 and the modems 126 are conventional and are also connected to the PSTN 122.
The packet network telephony gateway 128 connects the packet-switching network 106 to the PBX 118 and the PSTN 122. The packet network telephony gateway 128 receives information from the packet-switching network 106 and converts the information to a form compatible with the PBX 118 and/or the PSTN 122. The packet network telephony gateway 128 also receives information from the PBX 118 and the PSTN 122 and converts such information into a form compatible with the packet-switching network 106. Thus, the packet network telephony gateway 128 serves as an interface between the packet-switching network 106 of the virtual PBX system 100 and the conventional telephony system 116. The packet network telephony gateway 128 may be an H.323 gateway PC, such as that described in http://quicknet.net/support/AppNotes/AN00004.htm. The packet network telephony gateway 128 may include a gatekeeper or other device or software for interfacing a packet-switching network and a conventional telephony system.
The ACP system 130 is any known ACP system for controlling processes such as collect call and messaging for example. One such ACP system is described in U.S. Pat. No. 5,787,150 to Reiman et al., entitled "Method and System for Automated Collect Call Messaging," which is incorporated by reference herein. The ACP system 130 automatically processes calls received via the PSTN 122 and connects calls to the processor 108 and/or the directory 112 of the virtual PBX system 100.
It is emphasized that the virtual PBX system 100 of
The present invention stores information relating to the users of the virtual PBX system 100. This information includes the users'PBX extensions, aliases, IP addresses, and the locations of different terminal points for each user extension, as well as the order of preference that the terminal points are to be accessed or dialed. This information is stored in one or more memories such as a hard disk, optical disk, magneto-optical disk, and/or random access memory (RAM), for example. One or more databases, such as the storage object database 110 and/or the directory database 114, may store the information used to implement the present invention. The databases are organized using data structures (e.g., records, tables, arrays, fields, and/or lists) contained in a memory such as a hard disk, optical disk, magneto-optical disk, and/or RAM, for example.
Accordingly, when a user logs in, an entry corresponding to the user's network address (e.g., the IP address of the user's data device) is created in the packet network locations record 300 and associated with the user's virtual PBX extension and group ID number. In this manner, the present invention is able to dynamically track the locations of users of the virtual PBX system 100 by storing the network address of the data device through which the user has logged onto the virtual PBX system 100. As an example of the flexibility and convenience that the virtual PBX 100 of the present invention provides, a user could (1) participate in a telephone conference using the data device 102, which may be located in the user's office, (2) disconnect from the conference, and (3) log in using the data device 104, which may be located in the user's automobile.
It is to be understood that the data structures shown in
If the user successfully logs in, the network address (e.g., the IP address) of the data device that the user has connected to the virtual PBX system is linked to the virtual PBX extension of the user. As noted above, users are not required to maintain static locations and can log onto the system on different data devices while maintaining the same user extension.
If the user does not wish to access message options in step 604, then the process proceeds to step 606. In step 606, the processor 108 determines whether the user wishes to access user options. If the user wishes to access user options, then user options are invoked in step 608. User options include standard user options such as storing a greeting message, changing the greeting message, setting the number of rings before an incoming caller is forwarded to voice mail, or any known features or options used in a conventional telephony system. Additionally, the user may be permitted to change the location order (stored in the field 306 in
If the processor determines in step 610 that the user has not disconnected, then steps 602, 604, 606, and 610 are repeated until the processor 108 determines that the user wishes to make an outbound call, access message options, access user options, or disconnect.
If the destination is to a PSTN, then the process proceeds to step 804. In step 804 the directory determines whether the destination user is online by determining whether an IP address is associated with the destination user's virtual PBX extension in the packet network locations record 400. If an IP address is associated with the destination user's virtual PBX extension, then the destination user is determined to be online. If the destination user is online, then in step 806 the directory accesses the packet network locations record 400 to find the network address of the destination user's data device. The destination network address is sent to the processor 108, which initiates the call to that network address in step 808. Then, the processor 108 determines whether the destination user accepts the call in step 810. If the destination user does not accept the call, then the processor 108 notifies the directory 112, and the directory 112 determines whether the destination user has more terminal point locations in the extension locations record 300 in step 812. If the destination user has more locations, then the directory 112 selects the next location, based on the location order in the extension locations table 300, in step 814, and the process returns to step 704. Similarly, if the destination user is determined to be offline in step 804, then the process proceeds to step 812 to determine whether the user has additional terminal point locations. If the user has no more terminal point locations, then in step 816, the caller is forwarded to the destination user's voice mail system on the processor 108. Voice messages are stored in the object storage database 110.
If, in step 802, the directory 112 determines that the destination is not to the PSTN 122, then the process proceeds to step 818. In step 818 the processor 108 connects the call to the PSTN 122 via the packet network telephony gateway 128. Then, in step 820 the processor 108 determines whether the call was successful. If the call was not successful then the process proceeds to step 812 to determine whether the destination user has more terminal point locations in the extension locations record 300.
As shown in
Additionally, the interface between the packet network telephony gateway 128 and the virtual PBX system 100 and the ACP system 130 provides connectivity between the virtual PBX system of the present invention and existing PSTNs and PBXs.
All or a portion of the invention may be conveniently implemented using conventional general purpose computers or microprocessors programmed according to the teachings of the present invention, as will be apparent to those skilled in the computer art. Appropriate software can be readily prepared by programmers of ordinary skill based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.
As stated above, the system includes at least one computer readable medium or memory programmed according to the teachings of the invention and for containing data structures, tables, records, or other data described herein. Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto-optical disks, PROMs (EPROM, EEPROM, Flash EPROM), DRAM, SRAM, SDRAM, etc. Stored on any one or on a combination of computer readable media, the present invention includes software for controlling both the hardware of the computer 1000 and for enabling the computer 1000 to interact with a human user (e.g., a consumer). Such software may include, but is not limited to, device drivers, operating systems and user applications, such as development tools. Such computer readable media further includes the computer program product of the present invention for performing all or a portion (if processing is distributed) of the processing performed in implementing the invention. The computer code devices of the present invention can be any interpreted or executable code mechanism, including but not limited to scripts, interpreters, dynamic link libraries, Java classes, and complete executable programs. Moreover, parts of the processing of the present invention may be distributed for better performance, reliability, and/or cost.
The invention may also be implemented by the preparation of application specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art.
Obviously, numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein.
Galvin, Thomas J., Kirchner, Michael C., O'Brien, Mark J., Hanson, Joel K., Moey, Anthony W.S.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
4764919, | Sep 05 1986 | American Telephone and Telegraph Company, AT&T Bell Laboratories | Virtual PBX call processing method |
4896319, | Mar 31 1988 | American Telephone and Telegraph Company, AT&T Bell Laboratories; Bell Telephone Laboratories, Incorporated; American Telephone and Telegraph Company | Identification and authentication of end user systems for packet communications network services |
5233607, | Apr 29 1991 | Siemens Aktiengesellschaft | Communication system for forming virtual, annular networks in a time-division multiplex packet switching network |
5742596, | Nov 12 1995 | CUFER ASSET LTD L L C | Network based distributed PBX system |
6018570, | May 12 1997 | Verizon Patent and Licensing Inc | Methods and apparatus for regulating the remote ordering, authorization, access and control of services and service features associated with a terminal |
6393017, | Nov 17 1999 | Verizon Patent and Licensing Inc | Virtual PBX system |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 25 2002 | WorldCom, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Date | Maintenance Schedule |
Apr 20 2007 | 4 years fee payment window open |
Oct 20 2007 | 6 months grace period start (w surcharge) |
Apr 20 2008 | patent expiry (for year 4) |
Apr 20 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 20 2011 | 8 years fee payment window open |
Oct 20 2011 | 6 months grace period start (w surcharge) |
Apr 20 2012 | patent expiry (for year 8) |
Apr 20 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 20 2015 | 12 years fee payment window open |
Oct 20 2015 | 6 months grace period start (w surcharge) |
Apr 20 2016 | patent expiry (for year 12) |
Apr 20 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |