Communication management system for computer network based telephones
10 claims: 10 independent, 0 dependent
- 1A system (10) for managing a communication session over a computer network (14) that includes a gate keeper (114), the system (10) comprising:(a) a network connector (16) for connecting to the computer network (14) and for receiving data packets from the computer network (14);(b) a filtering unit (24) for filtering said data packets, such that said data packets form at least a portion of the communication session and such that said data packets are selected data packets;(c) a management unit (28) for receiving said selected data packets and for storing said selected data packets, such that said selected data packets are stored data packets;and(d) a storage medium (30) for receiving and for storing said stored data packets from said management unit (28), such that said at least a portion of the communication session is stored;characterized in that said filtering unit (24) accepts said data packets substantially only if said data packets contain data selected from the group consisting of audio data and video data, and in that the system further comprises:(e) a logical link (160), between the gatekeeper (114) and said management unit (28), for transferring information related to said data packets from the gatekeeper (114) to said management unit (28). Ein System (10) zur Verwaltung einer Kommunikationsverbindung über ein Computernetzwerk (14), das einen Pförtner (114) umfasst, wobei das System (10) folgendes umfasst: (a) ein Netzwerkverbindungselement (16) zum Anschließen an das Computernetzwerk (14) und zum Empfangen von Datenpaketen von dem Computernetzwerk (14);(b) eine Filtereinheit (24) zum Filtern besagter Datenpakete, sodass besagte Datenpakete zumindest einen Teil der Kommunikationsverbindung bilden und sodass besagte Datenpakete ausgewählte Datenpakete sind;(c) eine Verwaltungseinheit (28) zum Empfangen besagter ausgewählter Datenpakete und zum Speichern besagter ausgewählter Datenpakete, sodass besagte ausgewählte Datenpakete gespeicherte Datenpakete sind;und(d) ein Speichermedium (30) zum Empfangen und zum Speichern besagter gespeicherter Datenpakete von besagter Verwaltungseinheit (28), sodass zumindest ein Teil der Kommunikationsverbindung gespeichert wird;dadurch gekennzeichnet, dass besagte Filtereinheit (24) besagte Datenpakete im Wesentlichen nur dann akzeptiert, wenn besagte Datenpakete Daten enthalten, die aus der aus Audiodaten und Videodaten bestehenden Gruppe gewählt sind, und dadurch , dass das System weiterhin folgendes umfasst:(e) ein logisches Verbindungsglied (160) zwischen dem Pförtner (114) und besagter Verwaltungseinheit (28), zum übertragen von die besagten Datenpakete betreffender Information von dem Pförtner (114) zu besagter Verwaltungseinheit (28). Système (10) pour gérer une session de transmission sur un réseau d'ordinateurs (14) qui englobe un portier (114), le système (10) comprenant: (a) une connexion réseau (16) pour la connexion au réseau d'ordinateurs (14) et pour la réception de paquets de données à partir du réseau d'ordinateurs (14);(b) une unité de filtrage (24) pour le filtrage desdits paquets de données, de telle sorte que lesdits paquets de données forment au moins une portion de la session de transmission et de telle sorte que lesdits paquets de données représentent des paquets de données sélectionnés;(c) une unité de gestion (28) pour la réception desdits paquets de données sélectionnés et pour le stockage desdits paquets de données sélectionnés, de telle sorte que lesdits paquets de données sélectionnés representent des paquets de données stockés;et(d) un support de stockage (30) pour la réception et pour le stockages desdits paquets de données stockés á partir de ladite unité de gestion (28), de façon á stocker ladite au moins une portion de la session de transmission;caractérisé en ce que ladite unité de filtrage (24) accepte lesdits paquets de données de manière substantielle uniquement lorsque lesdits paquets de données contiennent des données sélectionnées parmi le groupe constitué par des données audio et des données vidéo, et en ce que le systéme comprend en outre:(e) un lien logique (160), entre le portier (114) et ladite unité de gestion (28), pour le transfert d'informations concernant lesdits paquets de données du gardien (114) u ladite unité de gestion (28).
- 2Das System von Anspruch 1, weiterhin umfassend:(f) eine Datenwiederherstellungseinheit (32) zum Wiedergewinnen und Anzeigen besagten zumindest einen Teils der Kommunikationsverbindung, wobei besagte Datenwiederherstellungseinheit (32) besagte Datenpakete von besagtem Speichermedium (30) durch besagte Verwaltungseinheit (28) anfordert, und wobei besagte Datenwiederherstellungseinheit (32) besagte Datenpakete rekonstruiert, um besagten zumindest einen Teil der Kommunikationsverbindung anzuzeigen. Systéme selon la revendication 1, comprenant en outre: (f) une unité de restauration de données (32) pour l'extraction et l'affichage de ladite au moins une portion de la session de transmission, ladite unité de restauration de données (32) réclamant lesdits paquets de données á partir dudit support de stockage (30) via ladite unité de gestion (28), ladite unité de restauration de données (32) reconstruisant lesdits paquets de données à des fins d'affichage de ladite au moins une portion de la session de transmission. The system of claim 1, further comprising: (f) a data restore unit (32) for retrieving and displaying said at least a portion of the communication session, said data restore unit (32) requesting said data packets from said storage medium (30) through said management unit (28), and said data restore unit (32) reconstructing said data packets for displaying said at least a portion of the communication session.
- 3Das System (10) von Anspruch 2, wobei besagte Datenwiederherstellungseinheit (32) weiter eine Kommunikationsverbindungs-Anzeigeeinheit (34, 36) zum Anzeigen zumindest einen Teils der Kommunikationsverbindung umfasst. Système (10) selon la revendication 2, dans lequel ladite unité de restauration de données (32) comprend en outre une unité d'affichage de session de transmission (34, 36) pour l'affichage de ladite au moins une portion de la session de transmission. The system (10) of claim 2, wherein said data restore unit (32) further comprises a communication session display unit (34, 36) for displaying said at least a portion of the communication session.
- 4Das System (10) von Anspruch 3, wobei besagte Kommunikationsverbindungs-Anzeigeeinheit (34, 36) aus der aus einer Videoeinheit (36) und einer Audioeinheit (34) bestehenden Gruppe gewählt ist. Système (10) selon la revendication 3, dans lequel ladite unité d'affichage de session de transmission (34, 36) est choisie parmi le groupe constitué par une unité vidéo (36) et par une unité audio (34). The system (10) of claim 3, wherein said communication session display unit (34, 36) is selected from the group consisting of a video unit (36) and an audio unit (34).
- 5Das System (10) von Anspruch 2, weiterhin umfassend:(g) eine mit besagter Filtereinheit (24) verbundene Datenbank (26) zum Speichern von Filterinformation, wobei besagte Filterinformation zumindest eine IP-Adresse eines Teilnehmers enthält, dessen Kommunikationsverbindungen überwacht werden;wobei besagte Filtereinheit (24) besagte Datenpakete gemäß besagter Filterinformation akzeptiert, sodass besagte Filtereinheit (24) besagte Datenpakete im Wesentlichen nur akzeptiert, wenn besagte Datenpakete besagte Filterinformation erfüllen. Système (10) selon la revendication 2, comprenant en outre: (g) une base de données (26) connectée à ladite unité de filtrage (24) pour le stockage d'informations de filtrage, lesdites informations de filtrage englobant au moins une adresse IP d'un correspondant dont les sessions de transmission sont surveillées;dans lequel ladite unité de filtrage (24) accepte lesdits paquets de données en fonction desdites informations de filtrage, de telle sorte que ladite unité de filtrage (24) accepte de manière substantielle uniquement lesdits paquets de données lorsque lesdits paquets de données correspondent auxdites informations de filtrage. The system (10) of claim 2, further comprising: (g) a database (26) connected to said filtering unit (24) for storing filtering information, said filtering information including at least one LP address of a party whose communication sessions are monitored;wherein said filtering unit (24) accepts said data packets according to said filtering information, such that said filtering unit (24) substantially only accepts said data packets if said data packets fulfill said filtering information.
- 6Das System (10) von Anspruch 5, weiter umfassend:(h) einen Benutzercomputer (12) zum Empfangen zumindest eines Befehls eines Benutzers und dem besagtem Benutzer Anzeigen von Information, sodass besagter Benutzer besagte Filterinformation gemäß besagtem zumindest einem Befehl besagten Benutzers bestimmt. Système (10) selon la revendication 5, comprenant en outre: (h) un ordinateur d'utilisateur (12) pour la réception d'au moins une commande d'un utilisateur et pour l'affichage d'informations audit utilisateur, de telle sorte que ledit utilisateur détermine lesdites informations de filtrage en fonction de ladite au moins une commande dudit utilisateur. The system (10) of claim 5, further comprising: (h) a user computer (12) for receiving at least one command of a user and for displaying information to said user, such that said user determines said filtering information according to said at least one command of said user.
- 7Das System (10) von Anspruch 6, wobei das Computernetzwerk (14) aus der aus einem LAN (lokales Netzwerk) (106) und einem WAN (Weitbereichsnetzwerk) bestehenden Gruppe gewählt ist. Système (10) selon la revendication 6, dans lequel le réseau d'ordinateurs (14) est choisi parmi le groupe constitué par un réseau LAN (réseau local) (106) et un réseau WAN (réseau étendu). The system (10) of claim 6, wherein the computer network (14) is selected from the group consisting of a LAN (local area network) (106) and a WAN (wide area network).
- 8Das System (10) von Anspruch 7, wobei das Computernetzwerk ein LAN (lokales Netzwerk) (106) ist. Système (10) selon la revendication 7, dans lequel le réseau d'ordinateurs est un réseau LAN (réseau local) (106). The system (10) of claim 7, wherein the computer network is a LAN (local area network) (106).
- 9Das System (10) von Anspruch 8, wobei besagtes LAN (106) in zumindest zwei Segmente (120) unterteilt ist, wobei das System (10) weiterhin folgendes umfasst:(i) eine lokale Verwaltungseinheit (124) fuer jedes Segment (120), wobei besagte lokale Verwaltungseinheit (124) besagte Filtereinheit (24) und besagte Verwaltungseinheit (28) umfasst;und(j) eine zentrale Verwaltungseinheit (126) zum Steuern besagter lokaler Verwaltungseinheiten (124), wobei besagte zentrale Verwaltungseinheit (126) das Speichern in besagtem Speichermedium (30) steuert. Système (10) selon la revendication 8, dans lequel ledit réseau LAN (106) est subdivisé en au moins deux segments (120), le système (10) comprenant en outre: (i) une unité de gestion locale (124) pour chaque segment (120), ladite unité de gestion locale (124) englobant ladite unité de filtrage (24) et ladite unité de gestion (28);et(j) une unité de gestion centrale (126) pour commander lesdites unités de gestion locales (124), ladite unité de gestion centrale (126) commandant le stockage dans ledit support de stockage (30). The system (10) of claim 8, wherein said LAN (106) is divided into at least two segments (120), the system (10) further comprising: (i) a local management unit (124) for each segment (120), said local management unit (124) including said filtering unit (24) and said management unit (28);and(j) a central management unit (126) for controlling said local management units (124), said central management unit (126) controlling storage in said storage medium (30).
- 10Das System (10) von Anspruch 1, wobei besagtes Netzwerkverbindungselement (16) eine Netzwerkkarte (16) ist. Système (10) selon la revendication 1, dans lequel ladite connexion réseau (16) est une carte réseau (16). The system (10) of claim 1, wherein said network connector (16) is a network interface card (16).
Independent claims10
103 paragraphs in 5 sections, as filed
FIELD AND BACKGROUND
The present invention is of a method and a system for the management of communication sessions for computer network-based telephone communication, and in particular for the identification of packets containing audio and/or video data, for the storage of these packets, and for the reconstruction of selected communication sessions for audio and/or video display as needed.
The integration of the computer into office communication systems has enabled many functions previously performed by separate devices to be combined into a single management system operated through a computer. For example, computer-based voice logging systems enable a computer to receive voice communication through a hardware connection to the regular telephony network, to record either a conversation, in which at least two parties converse, or a message from at least one party to one or more parties, and to replay these recorded conversations or messages upon request. These voice logging systems can replace mechanical telephone answering machines.
The computer logging systems have many advantages over the mechanical answering machines. For example, the voice messages can be stored in a computer-based storage medium, such as a DAT cassette, which has a greater storage capacity than regular audio cassettes. Furthermore, the stored voice messages can be organized in a database, such that the messages can retrieved according to time, date, channel, dialed number or caller identification, for example. Such organization is not possible with a mechanical telephone answering machine. Thus, computer logging systems for voice messages have many advantages over mechanical answering machines.
Unfortunately, currently available computer logging systems have the disadvantage of being unable to record telephone communication sessions, whether conversations or messages, for voice communication being performed through a LAN (local area network) or a WAN (wide area network). Although these logging systems can play back voice messages to a remote user through a LAN, for example, they cannot record such a message if it is transmitted by a LAN-based telephone. Such LAN and WAN based telephone communication has become more popular recently, since it enables telephone communication to be performed between various parties at physically separated sites without paying for local regular telephony network services, thereby saving money.
Furthermore, LAN and WAN based telephone communication also facilitates the transmission of video as well as audio information. Video information certainly cannot be recorded by currently available computer logging systems. Thus, the inability of computer logging systems to record telephone communication sessions for telephone communication being performed through a LAN or a WAN, including both video and audio data, is a significant disadvantage of these systems.
There is therefore a need for, and it would be highly advantageous to have, a system and a method for recording telephone communication sessions performed over a computer network, such as a LAN or a WAN, which would record both audio and video information, organize such information, and then display such information upon request.
The switching industry is moving towards the IP world. This move is having a huge impact on the telecommunications industry. It is too early to understand the full impact of this move.
The IP multimedia initiative got its momentum when the International Telecommunications Union published the H.323 standard ensuring compatibility between switching products from different vendors. The H.323 standard provides a foundation for audio, video and data communication across IP-based networks including the Internet.
Most of the main switching vendors such as Lucent, Siemens, Nortel and Alcatel have decided to integrate IP into their current switching platforms. Very soon, these vendors will present the market with new switch platforms based on IP technology.
All current recording solutions are based on the fact that a PBX or a central office utilizes a central switching matrix, with all calls being routed via this central matrix. Integration with this matrix insures that all calls routed by the PBX or central office could be recorded by a digital recording system that has a connection to the switch matrix. This, however, is inconsistent with the IP environment, which is inherently decentralized.
There is therefore a need for, and it would be highly advantageous to have, a system and a method for recording telephone communication sessions performed over a computer network, such as a LAN or a WAN, that would be independent of a central switching matrix.
SUMMARY OF THE INVENTION
It is one object of the present invention to provide a system and a method for recording communication sessions performed over a computer network
It is another object of the present invention to provide such a system and method for analyzing data transmitted over the computer network in order to detect audio and video data for recording.
It is still another object of the present invention to provide such a system and method for displaying recorded video and audio data upon request.
It is yet another object of the present invention to provide such a system and method for analyzing, recording and displaying communication sessions conducted with a LAN-based telephone system.
These and other objects of the present invention are explained in further detail with regard to the drawings, description and claims provided below.
The present invention provides a system and a method for analyzing data packets on a computer network, for selectively recording audio and video data packets, for organizing this stored information and for displaying the stored information upon request, such that communication sessions with computer network-based "telephone" systems can be logged.
According to the teachings of the present invention, there is provided a system for managing a communication session over a computer network that includes a gatekeeper, the system comprising: (a) a network connector for connecting to the computer network and for receiving data packets from the computer network; (b) a filtering unit for filtering the data packets and for accepting the data packets substantially only if the data packets contain data selected from the group consisting of audio data and video data, such that the data packets form at least a portion of the communication session and such that the data packets are selected data packets; (c) a management unit for receiving the selected data packets and for storing the selected data packets, such that the selected data packets are stored data packets; (d) a storage medium for receiving and for storing the stored data packets from the management unit, such that the at least a portion of the communication session is stored; and (e) a link, between the gatekeeper and the management unit, for transferring information related to the data packets from the gatekeeper to the management unit.
Preferably, the system further comprises (f) a data restore unit for retrieving and displaying the at least a portion of the communication session, the data restore unit requesting the data packets from the storage medium through the management unit, and the data restore unit reconstructing the data packets for displaying the at least a portion of the communication session.
More preferably, the data restore unit further comprises a communication session display unit for displaying the at least a portion of the communication session. Most preferably, the communication session display unit is selected from the group consisting of a video unit and an audio unit.
According to preferred embodiments of the present invention, the system further comprises (g) a database connected to the filtering unit for storing filtering information, the filtering information including at least one IP address of a party whose communication sessions are monitored; wherein the filtering unit accepts the data packets according to the filtering information, such that the filtering unit substantially only accepts the data packets if the data packets fulfill the filtering information.
Preferably, the system further comprises (h) a user computer for receiving at least one command of a user and for displaying information to the user, such that the user determines the filtering information according to the at least one command of the user.
More preferably, the computer network is selected from the group consisting of a LAN (local area network) and a WAN (wide area network). Most preferably, the computer network is a LAN (local area network).
According to further preferred embodiments of the present invention, the LAN is divided into at least two segments, the system further comprising: (i) a local management unit for each segment, the local management unit including the filtering unit and the management unit; and (j) a central management unit for controlling the local management units, the central management unit controlling storage in the storage medium.
Preferably, the network connector is a network interface card.
Hereinafter, the term "communication session" includes both a conversation, in which at least two parties converse by exchanging audio and/or video information in "real time", and a message, in which at least one party records such audio and/or video information for reception by at least one other party at a later date.
Hereinafter, the term "Internet" is used to generally designate the global, linked web of thousands of networks which is used to connect computers all over the world. As used herein, the term "intranet" includes other types of computer networks, such as LAN (local area networks) or WAN (wide area networks). The term "computer network" includes any connection between at least two computers which permits the transmission of data, including both Internet and intranet. The term "regular telephony network" includes POTS (plain old telephone system) and substantially any other type of telephone network which provides services through a regular telephone services provider, but which specifically excludes audio and/or video communication performed through any type of computer network.
Hereinafter, the term "computer" includes, but is not limited to, personal computers (PC) having an operating system such as DOS, Windows™, OS/2™ or Linux; Mackintosh™ computers; computers having JAVA™-OS as the operating system; and graphical workstations such as the computers of Sun Microsystems™ and Silicon Graphics™, and other computers having some version of the UNIX operating system such as AIX or SOLARIS™ of Sun Microsystem™; or any other known and available operating system. Hereinafter, the term "Windows™" includes but is not limited to Windows95™, Windows 3.x™ in which "x" is an integer such as "1", Windows NT™, Windows98™, Windows CE™ and any upgraded versions of these operating systems by Microsoft Inc. (Seattle, Washington, USA).
Hereinafter, the term "logging" refers to the process of analyzing data packets on a network to locate audio and/or video data, and of recording such data in an organized system. Hereinafter, the term "display" includes both the visual display of video data, and the production of sound for audio data.
<patcit id="pcit0001" dnum="WO0028425A"><text>PCT application WO 00/28425</text></patcit> teaches a multimedia call center that includes a management server 77. One difference between the multimedia call center of <patcit id="pcit0002" dnum="WO0028425A"><text>WO 00/28425</text></patcit> and the system of the present invention is that management server 77 of <patcit id="pcit0003" dnum="WO0028425A"><text>WO 00/28425</text></patcit> selectively routes all kinds of incoming packets, not just audio data packets and video data packets, to a multimedia server 79 for storage. Another difference between the multimedia call center of <patcit id="pcit0004" dnum="WO0028425A"><text>WO 00/28425</text></patcit> and the system of the present invention is that the multimedia call center of <patcit id="pcit0005" dnum="WO0028425A"><text>WO 00/28425</text></patcit> lacks a link between management server 77 and a gatekeeper.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein: <ul id="ul0001" list-style="none" compact="compact"><li><figref idref="f0001">FIG. 1</figref> is a schematic block diagram of an exemplary communication session monitoring system according to the present invention;</li><li><figref idref="f0002">FIG. 2</figref> is a schematic block diagram of the software modules required for operating the system of <figref idref="f0001">Figure 1</figref>;</li><li><figref idref="f0003 f0004 f0005">FIGS. 3A-3D</figref> are flowcharts of exemplary filtering and recording methods according to the present invention;</li><li><figref idref="f0005 f0006">FIGS. 4A-4D</figref> are schematic block diagrams showing the headers of H.225 (<figref idref="f0005">Figure 4A</figref>), H.245 (<figref idref="f0006">Figure 4B</figref>), RTP (<figref idref="f0006">Figure 4C</figref>) and RTCP (<figref idref="f0006">Figure 4D</figref>) packets, as they relate to the present invention;</li><li><figref idref="f0007">FIG. 5</figref> is a flowchart of an exemplary communication session playback method according to the present invention;</li><li><figref idref="f0008">FIG. 6</figref> is a schematic block diagram of an exemplary first embodiment of a basic system using the communication session monitoring system of <figref idref="f0001">Figures 1</figref> and <figref idref="f0002">2</figref> according to the present invention; and</li><li><figref idref="f0008">FIG. 7</figref> is a schematic block diagram of an exemplary second embodiment of a zone system according to the present invention;</li><li><figref idref="f0009">FIG. 8</figref> is a schematic block diagram of an exemplary passive recording system according to another embodiment of the present invention.</li></ul>
DESCRIPTION OF BACKGROUND ART
The following description is intended to provide a description of certain background methods and technologies which are optionally used in the method and system of the present invention. The present invention is specifically not drawn to these methods and technologies alone. Rather, they are used as tools to accomplish the goal of the present invention, which is a system and a method for analyzing data packets on a computer network, for selectively recording audio and video data packets, for organizing this stored information and for displaying the stored information upon request, such that communication sessions with computer network-based "telephone" systems can be logged.
The system and method of the present invention is particularly intended for operation with computer networks constructed according to the ITU-T Recommendation H.323 for visual telephone systems and equipment for local area networks which provide a non-guaranteed quality of service. Recommendation H.323 is herein incorporated by reference in order to further describe the hardware requirements and operating protocols for such computer networks, and is hereinafter referred to as "H.323".
H.323 describes terminals, equipment and services for multimedia communication over Local Area Networks (LAN) which do not provide a guaranteed quality of service. Computer terminals and equipment which fulfill H.323 may carry real-time voice, data and video, or any combination, including videotelephony.
The LAN over which such terminals communicate can be a single segment or ring, or optionally can include multiple segments with complex topologies. These terminals are optionally integrated into computers or alternatively are implemented in stand-alone devices such as videotelephones. Support for voice data is required, while support for general data and video data are optional, but if supported, the ability to use a specified common mode of operation is required, so that all terminals supporting that particular media type can communicate. The H.323 Recommendation allows more than one channel of each type to be in use. Other Recommendations in the H.323-Series which are also incorporated by reference include H.225.0 packet and synchronization, H.245 control, H.261 and H.263 video codecs, G.711, G.722, G.728, G.729, and G.723 audio codecs, and the T.120-Series of multimedia communications protocols.
ITU-T Recommendation H.245.0 covers the definition of Media stream packetization and synchronization for visual telephone systems. ITU-T Recommendation H.245.0 defines the Control protocol for multimedia communications, and is hereinafter referred to as "H.245". H.245 is incorporated by reference as is fully set forth herein.
The logical channel signaling procedures of H.245 describes the content of each logical channel when the channel is opened. Procedures are provided for the communication of the functional capabilities of receivers and transmitters, so that transmissions are limited to information which can be decoded by the receivers, and so that receivers may request a particular desired mode from transmitters.
H.245 signaling is established between two endpoints: an endpoint and a multi-point controller, or an endpoint and a Gatekeeper. The endpoint establishes exactly one H.245 Control Channel for each call that the endpoint is participating in. The channel must then operate according to H.245. Support for multiple calls and hence for multiple H.245 Control Channels is possible.
The RAS signaling function uses H.225.0 messages to perform registration, admissions, bandwidth changes, status, and disengage procedures between endpoints and Gatekeepers. In LAN environments that do not have a Gatekeeper, the RAS Signaling Channel is not used. In LAN environments which contain a Gatekeeper, such that the LAN includes at least one Zone, the RAS Signaling Channel is opened between the endpoint and the Gatekeeper. The RAS Signaling Channel is opened prior to the establishment of any other channels between H.323 endpoints.
The call signaling function uses H.225.0 call signaling to establish a connection between two H.323 endpoints. The Call Signaling Channel is independent from the RAS Channel and the H.245 Control Channel. The Call Signaling Channel is opened prior to the establishment of the H.245 Channel and any other logical channels between H.323 endpoints. In systems that do not have a Gatekeeper, the Call Signaling Channel is opened between the two endpoints involved in the call. In systems which contain a Gatekeeper, the Call Signaling Channel is opened between the end point and the Gatekeeper, or between the endpoints themselves as chosen by the Gatekeeper.
Corresponding to the various channels defined by H.323 are corresponding protocols that collectively constitute the H.323 protocol suite. These protocols include the H.225 and H.245 protocols for session setup and the RTP and RTCP protocols for the actual data exchange.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention provides a system and a method for analyzing data packets on a computer network, for selectively recording audio and video data packets, for organizing this stored information and for displaying the stored information upon request, such that communication sessions with computer network-based "telephone" systems can be logged.
The principles and operation of a method and a system according to the present invention may be better understood with reference to the drawings and the accompanying description.
Referring now to the drawings, <figref idref="f0001">Figure 1</figref> is a block diagram of an exemplary system for logging and displaying audio and/or visual data from communication sessions performed over a computer network. A computer logging system <b>10</b> features a user computer <b>12</b> connected to a communication session management unit <b>13</b>. Communication session management unit <b>13</b> is in turn connected to an intranet <b>14</b> through a network interface card (NIC) <b>16</b>.
User computer <b>12</b> includes a user interface <b>18</b>, which is preferably a GUI (graphical user interface), which is displayed on a display unit <b>20</b>. User interface <b>18</b> preferably enables the user to enter such information as the definition of the parties whose calls should to be monitored and/or logged, and which also preferably enables the user to enter at least one command for retrieving and displaying a communication session.
Display unit <b>20</b> is preferably a computer monitor. The user is able to interact with user computer <b>12</b> by entering data and commands through a data entry device <b>22</b>. Data entry device <b>22</b> preferably includes at least a keyboard or a pointing device such as a mouse, and more preferably includes both a keyboard and a pointing device. According to one preferred embodiment of the present invention, user computer <b>12</b> is a PC (personal computer). Alternatively and preferably, user computer <b>12</b> is a "thin client" such a net computer which is a computer able to communicate on an IP-based network. One example of such a net computer is the JavaStationTM (Sun Microsystems). The advantage of such net computers is that they allow the user to interact with complex, sophisticated software programs, yet generally do not have all of the powerful computing capabilities of currently available PC computers.
Intranet <b>14</b> could be a LAN or a WAN, for example. The connection between communication session management unit <b>13</b> and intranet <b>14</b> occurs through NIC <b>16</b>. NIC <b>16</b> is preferably any standard, off-the-shelf commercial product which enables communication session management unit <b>13</b> to be connected to any suitable computer network (for example, Etherlink II ISA/PCMCIA Adapter or Etherlink III PCI Bus-Master Adapter (3c590) of 3-Com™, or NE2000 Adapter of Novell™ or any other such suitable product). Examples of such suitable computer networks include, but are not limited to, any standard LAN such as Ethernet (IEEE Standard 802.3), Fast Ethernet (IEEE Standard 802.10), Token Ring (IEEE Standard 802.5) and FDDI.
All data packet traffic on intranet <b>14</b> is passed to a filtering module <b>24</b> through NIC 16. As shown in more detail in <figref idref="f0003 f0004 f0005">Figure 3</figref> below, filtering module <b>24</b> screens the data packets in order to determine which data packets fulfill the following criteria. Briefly, the data packets should be IP packets with headers according to the H.225 and H.245 standards, indicating voice and/or video traffic. As noted previously, these standards define media stream packet construction and synchronization for visual telephone systems and the control protocol for multimedia communications.
Filtering module <b>24</b> then preferably passes substantially only those data packets which meet these criteria to a management module <b>28</b>. In the Zone Configuration of the system of the present invention, shown in <figref idref="f0008">Figure 7</figref> below, filtering module <b>24</b> preferably also transfers messages from other communication session management units.
Management module <b>28</b> receives the data packets passed through by filtering module <b>24</b>, and analyzes the received data packets. Optionally and preferably, a database <b>26</b> stores such information as the IP addresses of parties whose communication sessions should be logged, as well as the conversion table associating each party with at least one IP address, for example. The stored list of IP addresses representing those parties whose calls should be logged is preferably user-defined. As used herein, the term "party" refers to a person or persons communicating through a computer network-based telephone system. The latter preferred requirement significantly reduces the amount of data stored by including only data which is of interest to the user. Management module <b>28</b> analyzes and manages data in accordance with the applicable H.225 and H.245 specifications, including the H.245 control function, RAS signaling function and call signaling function, substantially as described above in the "Description of the Background Art" section.
Management module <b>28</b> analyzes the packets in order to determine the specific communication session to which the data packets belong, the type of data compression being used (if any), and whether the data packets were sent from an IP address which should be monitored. Management module <b>28</b> must perform this analysis since filtering module <b>24</b> simply passes all data packets which fulfill the criteria described briefly above (see <figref idref="f0003 f0004 f0005">Figures 3A-3D</figref> for more detail). Since these packets are passed without regard to any of the information stored in database <b>26,</b> management module <b>28</b> must compare the rules of database <b>26</b> to the information present in the packet header of each packet in order to determine whether the received packet should be stored.
Those received packets which fulfill the rules of database <b>26</b> are then stored in a storage medium <b>30,</b> which is preferably a high capacity digital data storage device such as a hard disk magnetic storage device, an optical disk, a CD-ROM, a ZIP or DVD drive, or a DAT cassette, or a combination of such devices according to the operational needs of specific applications, or any other suitable storage media. Preferably, the specific communication session or "telephone call", with which each data packet is associated, is also stored in order for that session to be reconstructed and displayed at a later time.
Upon request by the user, management module <b>28</b> can then retrieve one or more data packets from storage medium <b>30</b> which are associated with one or more communication sessions. The retrieved packet or packets are then transferred to a data restore module <b>32</b>. Data restore module <b>32</b> is preferably capable of manipulating these retrieved packets to restore a particular communication session by using the RTP (Real Time Protocol). As described in further detail below with regard to <figref idref="f0006">Figures 4C</figref> and <figref idref="f0007">5</figref>, in those systems which follow the RTP, the data packets are sent with a time stamp in the header rather than just a sequence number. Such a time stamp is necessary for audio and video stream data, in order for the data packets to be reassembled such that the overall timing of the stream of data is maintained. Without such a time stamp, the proper timing would not be maintained, and the audio or video streams could not be accurately reconstructed.
The communication sessions are restored from the reconstructed streams of data packets by using the applicable audio and/or video CODEC's. A CODEC is a non-linear method for the conversion of analog and digital data. Thus, an audio CODEC enables the digitized audio data in relevant data packets to be converted to analog audio data for display to the user as audible sounds, for example. Suitable CODEC's are described in greater detail below with regard to <figref idref="f0007">Figure 5</figref>.
In order for the user to receive the display of the reconstructed communication session, system <b>10</b> preferably features an audio unit <b>34</b> and a video unit <b>36,</b> collectively referred to as a "communication session display unit". More preferably, both audio unit <b>34</b> and video unit <b>36</b> are capable of both receiving audio or video input, respectively, and of displaying audio or video output At the very least, audio unit <b>34</b> and video unit <b>36</b> should be able to display audio or video output, respectively. For example, audio unit <b>34</b> could optionally include an microphone for input and a speaker or an earphone for output. Video unit <b>36</b> could optionally include a video monitor or display screen for output and a video camera for input, for example.
<figref idref="f0002">Figure 2</figref> is a schematic block diagram of system <b>10</b> of <figref idref="f0001">Figure 1</figref>, showing the overall system of software modules of system <b>10</b> in more detail. Reference is also made, where appropriate, to flow charts showing the operation of these software modules in more detail (<figref idref="f0003 f0004 f0005">Figures 3A-3D</figref> and <figref idref="f0007">Figure 5</figref>), as well as to descriptions of the headers of the different types of data packets (<figref idref="f0005 f0006">Figures 4A-4D</figref>).
As shown, system <b>10</b> again includes a connection to intranet <b>14</b> through NIC <b>16.</b> As the packets are transmitted through intranet <b>14,</b> NIC <b>16</b> intercepts these data packets and passes them to filtering module <b>24.</b>
Filtering module <b>24</b> has two components. A first filtering component <b>38</b> examines the header of the data packet, which should be an IP type packet with the correct header, as shown in <figref idref="f0005">Figure 4A</figref> below. Next, first filtering component <b>38</b> passes the data packet to a second filtering component <b>40</b>. Second filtering component <b>40</b> then determines the type of IP data packet, which could be constructed according to the H.225, H.245, RTP or RTCP standards.
As shown with reference to <figref idref="f0003">Figure 3A</figref>, first filtering component <b>38</b> and second filtering component <b>40</b> operate as follows. In step one, a packet is received by filtering module <b>24</b>. The packet is given to first filtering component <b>38</b>, which then determines whether the packet is an IP type packet in step two. Such a determination is performed to the structure of the header of the data packet, an example of which is shown in <figref idref="f0005">Figure 4A</figref>. A header <b>42</b> is shown as a plurality of boxes, each of which represents a portion or "field" of the header. The number of bytes occupied by each portion is also shown, it being understood that each layer consists of 32 bits. The first portion of the header, a "VERS" portion <b>44</b>, is the protocol version number. Next, an "H. LEN" portion <b>46</b> indicates the number of 32-bit quantities in the header A "SERVICE TYPE" portion <b>48</b> indicates whether the sender prefers the datagram to travel over a route with minimal delay or a route with maximal throughput. A "TOTAL LENGTH" portion <b>50</b> indicates the total number of octets in both the header and the data.
In the next layer, an "IDENTIFICATION" portion <b>52</b> identifies the packet itself. A "FLAGS" portion <b>54</b> indicates whether the datagram is a fragment or a complete datagram. A "FRAGMENT OFFSET" portion <b>56</b> specifies the location of this fragment in the original datagram, if the datagram is fragmented. In the next layer, a "TIME TO LIVE" portion <b>58</b> contains a positive integer between 1 and 255, which is progressively decremented at each route traveled. When the value becomes 0, the packet will no longer be passed and is returned to the sender. A "TYPE" portion <b>60</b> indicates the type of data being passed. A "HEADER CHECKSUM" portion <b>62</b> enables the integrity of the packet to be checked by comparing the actual checksum to the value recorded in portion <b>62</b>.
The next layer of header <b>42</b> contains the source IP address <b>64</b>, after which the following layer contains the destination IP address <b>66</b>. An optional IP OPTIONS portion <b>68</b> is present, after which there is padding (if necessary) and a data portion <b>70</b> of the packet containing the data begins.
The structure of the header of the data packet is examined by first filtering component <b>38</b> to determine whether this header has the necessary data fields in the correct order, such that the header of the data packet has a structure according to header <b>42</b>. First filtering component <b>38</b> only allows those packets with the correct header structure to pass, as shown in step 3A. Otherwise, the packets are dumped as shown in step 3B.
Those packets with the correct header, or "IP packets", are then passed to second filtering component <b>40</b>. Second filtering component <b>40</b> then performs the remainder of the filtering steps. In step 3A, second filtering component <b>40</b> examines the IP packets to determine their type from the data portion of the packet as shown in <figref idref="f0005">Figure 4A</figref>. The packets could be in one of four categories: H.225, H.245, RTP and RTCP. The steps of the method for H.225 packets are shown in <figref idref="f0003">Figure 3A</figref>, while the procedures for the remaining packet types are shown in <figref idref="f0004 f0005">Figures 3B-3D</figref>, respectively.
Once the type of the packet has been determined, both the packet itself and the information regarding the type of packet are both passed to management module <b>28</b>, as shown in <figref idref="f0002">Figure 2</figref>. The packet is then passed to the relevant component within management module <b>28</b>, also as shown in <figref idref="f0002">Figure 2</figref>, for the recording process to be performed. The recorded packets are stored in storage module <b>30</b>, as described in greater detail below with regard to <figref idref="f0005">Figures 3C and 3D</figref>.
If the packet has been determined to be an H.225 packet according to the header of the packet (see <figref idref="f0006">Figure 4B</figref>), the packet is passed to an H.225 call control module <b>78</b> within management module <b>28</b>, as shown in <figref idref="f0002">Figure 2</figref>. The steps of the management method are as follows, with reference to <figref idref="f0003">Figure 3A</figref>. In step 4A of <figref idref="f0003">Figure 3A</figref>, the H.225 packet is examined to see if it is a setup packet, which is determined according to the structure of the data in the packet. This structure is specified in the H.225.0 recommendation, and includes at least the following types of information: <ul id="ul0002" list-style="none" compact="compact"><li>protocolIdentifier (the version of H.225.0 which is supported);</li><li>h245Address (specific transport address on which H.245 signaling is to be established by the calling endpoint or gatekeeper);</li><li>sourceAddress (the H.323_ID's for the source);</li><li>sourceInfo (contains an EndpointType to enable the party being called to determine whether the call includes a gateway or not); and</li><li>destinationAddress (this is the address to which the endpoint wants to be connected).</li></ul> Other types of data are also required, as specified in the H.225.0 Recommendation. This data structure enables H.225 call control module <b>78</b> to determine whether the packet is a setup packet.
If this packet is a setup packet, then the first branch of the method is followed. The source port is taken from a source port field <b>74</b> of an H.225 header <b>72</b>, and the destination port is taken from a destination port field <b>76</b> (see <figref idref="f0006">Figure 4B</figref>). In step 5A, database <b>26</b> of <figref idref="f0001">Figure 1</figref> is then examined to determine whether either of the corresponding terminals is defined as a recording terminal; that is, whether communication sessions initiated by the IP address of this terminal should be monitored. If true, then in step 6A, the terminal status is set as a start session request from the terminal corresponding to the source port.
Alternatively, the packet is examined to see if it is a connect packet in step 4B, which is determined according to the structure of the data in the packet. This structure is specified in the H.225.0 recommendation, and includes at least the following types of information: <ul id="ul0003" list-style="none" compact="compact"><li>protocolIdentifier (the version of H.225.0 which is supported);</li><li>h245Address (specific transport address on which H.245 signaling is to be established by the calling endpoint or gatekeeper);</li><li>destinationInfo (contains an EndpointType to enable the caller to determine whether the call includes a gateway or not); and</li><li>conference ID (contains a unique identifying number to identify the particular conference).</li></ul>
If the packet is a connect packet, then the second branch of the method is followed. In step 5B, the flag indicating the terminal status is examined to determine if the terminal status is set as a start session request. In step 6B, the details of the call signal are saved in a call progress database <b>78</b> of storage medium <b>30</b> (see <figref idref="f0002">Figure 2</figref>). These details preferably include the source and destination IP addresses, the source and destination ports; the time at which the communication session was initiated, and any other relevant information. In step 7B, the status of the terminal is set to "wait for the logic channel".
If the packet has been determined to be an H.245 packet by second filtering component <b>40,</b> the packet is passed to an H.245 call control module <b>82</b> within management module <b>28,</b> as shown in <figref idref="f0002">Figure 2</figref>. Such H.245 packets are necessary for H.245 signaling. H.245 signaling is established between two endpoints: an endpoint and a multi-point controller, or an endpoint and a Gatekeeper (see <figref idref="f0008">Figures 6 and 7</figref> below for examples and a description of such endpoints). Each endpoint is capable of calling and of being called as part of a communication session. However, the system of the present invention only monitors, rather than initiating, such communication sessions. Thus, the system of the present invention uses the H.245 signaling to determine when the communication session has started in order to effectively record the necessary data packets for the storage and later reconstruction of the session.
The steps of the management method for H.245 packets are as follows, with reference to <figref idref="f0004">Figure 3B</figref>. In step 1A of <figref idref="f0004">Figure 3B</figref>, the H.245 packet is examined to determine if it is an open logical channel request packet. If it is, then in step 2A, the terminal status is examined to determine if the status is "wait for the logical channel". If so, then in step 3A the terminal status is set to "wait for acknowledgment".
Alternatively, the H.245 packet is examined to determine if it is an open logical channel acknowledgment packet, as shown in step 1B. If it is, then in step 2B, the terminal status is examined to determine if the status is "wait for acknowledgment". If so, then in step 3B the terminal status is set to "wait for terminal capability". In step 4B, the transport address of the "called" or destination terminal is saved. This transport address is taken from the destination port field <b>76</b> of header <b>72</b> (see <figref idref="f0006">Figure 4B</figref>). It should be noted that H.225 and H.245 packets have identical header structures.
Also alternatively, the H.245 packet is examined to determine if it is a terminal capability set packet, as shown in step 1C. If it is, then in step 2C, the terminal capability is saved in call progress database <b>80</b> (see <figref idref="f0002">Figure 2</figref>). In step 3C, the terminal status is set to "in call process", such that the communication session has been determined to be opened and such that management module <b>28</b> can now receive RTP data packets.
If the packet has been determined to be a RTP packet by second filtering component <b>40</b>, the packet is passed to a RAS (registration, admissions and status) control module <b>84</b> within management module <b>28</b>, as shown in <figref idref="f0002">Figure 2</figref>. The steps of the management method for RTP packets are as follows, with reference to <figref idref="f0005">Figure 3C</figref>. In step 1 of <figref idref="f0005">Figure 3C</figref>, the terminal status is examined to see if it is "in call process". If so then in step 2, the RTP packets are saved in a RTP database <b>86</b> within storage medium <b>30</b> (see <figref idref="f0002">Figure 2</figref>). <figref idref="f0006">Figure 4C</figref> shows the structure of the RTP packet header, which can be used to identify the communication session from which the packet was taken.
Finally, if the packet has been determined to be a RTCP packet by second filtering component <b>40</b>, the packet is passed to a RTCP control module <b>88</b> within management module <b>28,</b> as shown in <figref idref="f0002">Figure 2</figref>. The steps of the management method for RTCP packets are as follows, with reference to <figref idref="f0005">Figure 3D</figref>. In step 1 of <figref idref="f0005">Figure 3D</figref>, the terminal status is examined to see if it is "in call process". If so then in step 2, the RTCP packets are saved in call progress database 80 within storage medium <b>30</b> (see <figref idref="f0002">Figure 2</figref>). <figref idref="f0006">Figure 4D</figref> shows the structure of the RTCP packet header, which can be used to identify the communication session from which the packet was taken.
Thus, <figref idref="f0003 f0004 f0005">Figures 3A-3D</figref> illustrate the method of the present invention with regard to the filtering and storage of data packets which constitute the recorded communication session, as recorded by the system of the present invention as shown in <figref idref="f0001">Figures 1</figref> and <figref idref="f0002">2</figref>. Of course, in addition to recording such communication sessions, the system of the present invention is also able to retrieve and to replay these communication sessions to the user. The stored communication session, composed of stored data packets, can be retrieved and displayed by data restore unit <b>32</b> of <figref idref="f0002">Figure 2</figref>, in conjunction with audio unit <b>34</b> and video unit <b>36.</b> The method of retrieving and replaying sessions of interest is shown in <figref idref="f0007">Figure 5</figref>, while certain other relevant portions of the system of the present invention are shown in <figref idref="f0002">Figure 2</figref>.
In step 1 of <figref idref="f0007">Figure 5</figref>, the user inputs the information concerning the communication session which is to be retrieved and replayed. This information preferably includes the terminal number, or other designation information concerning at least one of the parties of the communication session of interest; the time at which the session started; and the time at which the session ended. However, alternatively other information could be included in place of this information, as long as sufficient information is provided for the communication session of interest to be identified.
In step 2 of <figref idref="f0007">Figure 5</figref>, call progress database <b>80</b> (see <figref idref="f0002">Figure 2</figref>) is searched by data restore unit <b>32</b> in order to find the details of the communication session(s) in the specified time range. These details are then compared to the information entered by the user to locate at least one communication session of interest in the call range.
In step 3, RTP database <b>86</b> of storage medium <b>30</b> (see <figref idref="f0002">Figure 2</figref>) is searched, again by data restore unit <b>32</b>, to find substantially all data packets from the at least one communication session in the specified call range. Optionally and preferably, in step 4, if the audio portion communication session was recorded in stereo, then the data packets are divided into different audio channels.
In step 5, the data packets are restored by data restore unit <b>32</b> by an RTP (Real Time Protocol) software module <b>91</b> within data restore unit <b>32</b>. RTP software module <b>91</b> orders the data packets within each channel according to the time stamp of each packet. As shown in <figref idref="f0006">Figure 4C</figref>, an RTP packet header <b>92</b> features several important fields: a timestamp field <b>94</b>, a synchronization source (SSRC) identifiers field <b>96</b> and a contributing source (CSRC) identifiers field <b>98</b>. SSRC field <b>96</b> is used to determine the source of the RTP packets (the sender), which has a unique identifying address (the SSRC identifier). The CSRC identifier in CSRC field <b>98</b> is used in a conference with multiple parties, and indicates the SSRC identifier of all parties. Timestamp field <b>94</b> is used by RTP software module <b>91</b> to determine the relative time at which the data in each packet should be displayed.
For example, preferably the audio stream data of the audio speech of one person is synchronized to that person's lip movements as shown in the video stream, a process known as "lip synchronization". Such synchronization requires more than simply replaying audio and video data at certain relative time points, since the audio and video data packets may not arrive at the same time, and may therefore have slightly different timestamps.
Once the data packet has been correctly synchronized, the control of the display of the audio data is then performed by an audio component <b>102</b> of data restore unit <b>32</b> according to one or more audio CODEC's (see <figref idref="f0002">Figure 2</figref>). The control of the display of the video data is then performed by a video component <b>100</b> of data restore unit <b>32</b> according to one or more video CODEC's (see <figref idref="f0002">Figure 2</figref>).
Suitable CODEC's include, but are not limited to, an audio codec using <i>CCITT Recommendation G.711 (1988), Pulse Code Modulation (PCM) of voice frequencies;</i> an audio codec using <i>CCITT Recommendation G.722 (1988), 7 kHz audio-coding within 64 kbit</i>/<i>s;</i> an audio codec using <i>ITU-T Recommendation G.723.1</i> (<i>1996</i>), <i>Speech coders: Dual rate speech coder for multimedia communications transmitting at 5.3 and 6 3 Kbps;</i> an audio codec using <i>CCITT Recommendation G. 728 (1992), Coding of speech at 16 Kbps using low-delay code excited linear prediction;</i> an audio codec using <i>ITU-T Recommendation G. 729 (1996), Coding of speech at 8 Kbps using conjugate structure algebraic code-excited linear-prediction</i> (<i>CS-ACELP</i>); a video codec using ITU-T Recommendation H.261 (1993), <i>Video codec for audiovisual services at p x 64 kbit</i>/<i>s;</i> a video codec using ITU-T Recommendation H.263 (1996), <i>Video coding for low bit rate communication;</i> and substantially any other similar coding standard.
As shown in <figref idref="f0002">Figure 2</figref>, the audio data is displayed by audio unit <b>34,</b> which could include a loudspeaker, for example. The video data is displayed by video unit <b>36,</b> which could include a display monitor screen, for example. Step 5 of <figref idref="f0007">Figure 5</figref> is then preferably repeated, such that substantially the entirety of the communication session is displayed. As shown in step 6, each data packet of the communication session is examined to see if the call time is over. If the individual session has not completed, preferably step 5 is repeated. Alternatively and preferably, if the call time is over, then call progress database <b>80</b> is searched to see if other communication sessions were recorded within the given time period, as shown in step 7. If there is at least one other such communication session, then preferably the method of <figref idref="f0007">Figure 5</figref> is repeated, starting from step 2.
According to preferred embodiments of the present invention, several configurations of the computer logging system are possible, examples of which are shown in <figref idref="f0008">Figures 6 and 7</figref>.
According to a first embodiment of the system of the present invention, shown in <figref idref="f0008">Figure 6</figref>, a typical basic configuration system <b>104</b> includes a single communication session management unit <b>13,</b> substantially as shown in <figref idref="f0001">Figures 1</figref> and <figref idref="f0002">2</figref>, according to the present invention. Communication session management unit <b>13</b> manages communication in a stand-alone intranet such as a LAN <b>106.</b> LAN <b>106</b> is connected both to communication session management unit <b>13</b> and to a plurality of terminals <b>108</b>, designated as "T1", "T2" and so forth, which follow the H.323 protocol. Each terminal <b>108</b> is an endpoint on LAN <b>106</b> which provides for real-time, two-way communications with another terminal <b>108</b>, a gateway <b>110</b>, or a multipoint control unit (MCU) <b>112</b>. This communication consists of control, indications, audio streams, video streams, and/or data. Terminal <b>108</b> is optionally only capable of providing such communication for audio only, audio and data, audio and video, or audio, data and video. As noted previously in the "Description of the Background Art" section, the H.323 entity could be a terminal which is capable of providing audio and/or video communication as a "LAN telephone", but could also be a stand-alone audio or video telephone.
Gateway <b>110</b> (GW) is constructed according to H.323 and is an endpoint on LAN <b>106</b> which provides for real-time, two-way communications between terminals <b>108</b> on LAN <b>106</b> and other suitable terminals on a WAN (not shown), or to another such Gateway (not shown). Other suitable terminals include those complying with Recommendations H.310 (H.320 on B-ISDN), H.320 (ISDN), H.321 (ATM), H.322 (GQOS-LAN), H.324 (GSTN), H.324M (Mobile), and V.70 (DSVD).
MCU <b>112</b> is an endpoint on LAN <b>106</b> which enables three or more terminals <b>108</b> and gateways <b>110</b> to participate in a multipoint conference.
Preferably, system <b>104</b> also features a gatekeeper (GK) <b>114,</b> which is an H.323 entity on LAN <b>106</b> which provides address translation and controls access to LAN <b>106</b> for terminals <b>108,</b> gateways <b>110</b> and MCUs <b>112.</b> Gatekeeper <b>114</b> may also provide other services to terminals <b>108,</b> gateways <b>110</b> and MCUs <b>112</b> such as bandwidth management and locating gateways <b>110.</b> Preferably, gatekeeper <b>114</b> enables the IP address of terminals <b>108</b> on LAN <b>106</b> to be determined, such that the correct IP address can be determined "on the fly".
In addition, LAN <b>106</b> may support non audio visual devices for regular T.120 data applications such as electronic whiteboards, still image transfer, file exchange, database access, etc.
In basic system <b>104,</b> a single, stand-alone communication session management unit <b>13</b> is used for monitoring, logging and retrieval of all audio and/or visual calls either between any two or more terminals <b>108</b> attached to LAN <b>106</b> or any call to which one or more of these terminals <b>108</b> is a party.
However, for the preferred embodiment of the system of <figref idref="f0008">Figure 6</figref> which includes gatekeeper <b>114,</b> as well as for the system of <figref idref="f0008">Figure 7</figref>, once the communication session has been opened, preferably RAS control module <b>84</b> also performs RAS signaling between the management control module and NIC <b>16</b> where necessary for the configuration of the system. Such signaling uses H.225.0 messages to perform registration, admissions, bandwidth changes, status, and disengage procedures between endpoints and gatekeepers. These messages are passed on a RAS Signaling Channel, which is independent from the Call Signaling Channel and the H.245 Control Channel. H.245 open logical channel procedures are not used to establish the RAS Signaling Channel. In LAN environments which contain a Gatekeeper (a Zone), the RAS Signaling Channel is opened between the endpoint and the Gatekeeper. The RAS Signaling Channel is opened prior to the establishment of any other channels between H.323 endpoints.
<figref idref="f0008">Figure 7</figref> shows a second embodiment of the system of the present invention as a zone configuration system <b>116.</b> A zone <b>118</b> is the collection of all terminals (Tx) <b>108,</b> gateways (GW) <b>110,</b> and multipoint control units (MCUs) <b>112</b> managed by a single gatekeeper (GK) <b>114.</b> Zone <b>118</b> includes at least one terminal <b>108,</b> but does not necessarily include one or more gateways <b>110</b> or MCUs <b>112.</b> Zone <b>118</b> has only one gatekeeper <b>114</b> as shown. However, in the preferred embodiment shown, zone <b>118</b> is preferably independent of LAN topology and preferably includes multiple LAN segments <b>120</b> which are connected using routers (R) <b>122</b> as shown or other similar devices.
Each monitored LAN segment <b>120</b> has a local communication management unit <b>124</b> according to the present invention, of which two are shown. A central management unit <b>126</b> according to the present invention controls all local communication management units <b>124</b>. In addition to centralized database and control services, central management unit <b>126</b> can be used for the real-time monitoring and off-line restoration of audio and/or video communication sessions from a single point. Central management unit <b>126</b> is optionally and preferably either a dedicated unit similar in structure to local communication management units <b>124</b> but without the storage capability, or central management unit <b>126</b> is alternatively and preferably integrated with local communication management units <b>124</b> to provide the functionality of both local communication management unit <b>124</b> and central management unit <b>126</b> in a single station. Local communication management units <b>124</b> are preferably either communication session management units <b>13</b> substantially as described in <figref idref="f0001">Figures 1</figref> and <figref idref="f0002">2</figref>, or alternatively and preferably are simpler units which lack the capability to retrieve and display a communication session locally.
In still another preferred embodiment of the present invention (not shown), multi-user operation based on Client/Server architecture is preferably supported for basic system <b>104</b> and zone system <b>116</b>. An unlimited number of "Client" stations may be connected anywhere on the LAN, providing users with management and monitoring/retrieval capabilities determined by the authorization level of each specific user.
Yet another preferred embodiment of the present invention, illustrated in <figref idref="f0009">Figure 8</figref>, addresses the challenges of an Internet Protocol (IP) distributed switching environment.
Recording systems experience the following challenges when interfaced with an IP environment: <ul id="ul0004" list-style="none" compact="compact"><li>Because there is no central switching matrix, voice streams between any extension A and B can be routed via the WAN without providing a means to capture the calls at the site where the recording systems are located.</li><li>Because the IP network consists of switch boxes, routers and bridges, the network topology can have a negative influence on the recording.</li><li>Few multimedia IP protocol suites include encryption. In particular, the H.323 protocol suite lacks encryption. In order for the recording system to de-encrypt the signal, the recording system needs to act as a "legal" party with the recorded call. The only way to become a "legal" party with the recorded call is to turn the call into a conference call in which the recording system is one member of the conference.</li><li>Multimedia IP protocols define several types of audio and video CODECS (G.711, G.722, G.728, G. 723, G.729, II.261 and II.263). Thus, during recording playback operation the recording system should have the capability of changing from one CODECS to another per the endpoint capability, if the voice or the video was recorded and stored using a different CODECS.</li></ul>
System <b>104</b> of <figref idref="f0008">Figure 6</figref> is intended for use in a standard H.323 environment. Terminals <b>108</b> conduct telephone conversations among themselves, or alternatively with POTS telephones via gateway <b>110.</b> In order to make these calls, terminals <b>108</b> communicate with gatekeeper <b>114</b> in order to find the destination terminal or gateway on LAN using the RAS protocol to perform call setup under the H.225 protocol and to negotiate the RTP stream characteristics under the H.245 protocol. Note that these protocols all belong to the H.323 protocol suite. The communication with gatekeeper <b>114</b>, under the RAS, H.225 and H.245 protocols, is the signaling part of the call and is used to establish the RTP or RTCP streams of the call which are used to carry the actual voice or video data. MCU <b>112</b> provides the ability to perform conferencing among three or more parties. All of the above communications are performed over LAN <b>106</b>.
Communication session management unit <b>13</b> is connected on LAN 106 in such a way that communication session management unit <b>13</b> is able to sniff all the packets of a conversation, both signaling packets and RTP or RTCP packets. Prior art connection methods include: <ol id="ol0001" compact="compact" ol-style=""><li>1. using a hub, in which case all packets are passed to all ports in the hub; and</li><li>2. monitoring strategic ports of a switched hub by other ports on the switched hub.</li></ol> Likely strategic ports under the second alternative are the ports of the switched hub to which one or more gateways <b>110</b> are connected, in which case all outgoing calls can be recorded. In this example, gateway <b>110</b> is connected to the monitored port of the switching hub and communication session management unit <b>13</b> is connected to the monitoring port of the switching hub.
Communication session management unit <b>13</b> sniffs the RTP and RTCP packets of the conversation and extracts the voice or video data from these packets. In order to associate these data with a telephone extension number, or with the name of the person at the extension, the H.323 signaling must be analyzed. This solution does not work in Voice Over IP systems in which the signaling protocols are not within the H.323 protocol suite. Such signaling protocols include SIP, MGCP and Cisco's proprietary Skinny protocol.
A third embodiment <b>150</b> of the system of the present invention, that does not depend on the signaling protocol, is illustrated in <figref idref="f0009">Figure 8</figref>. In system <b>150,</b> the voice or video data are recorded, as in system <b>104</b> of <figref idref="f0008">Figure 6</figref>, by having communication session management unit <b>13</b> sniff the RTP and RTCP packets. The innovation of system <b>150</b> is the addition of a link <b>160</b> between communication session management unit <b>13</b> and gatekeeper <b>114</b>. Specifically, link <b>160</b> connects management module <b>28</b> of communication session management unit <b>13</b> to gatekeeper <b>114</b>. Link <b>160</b> provides CTI (computer telephone integration) data or CDR (call data records) data to communication session management unit <b>13</b>. These data replace the data which are retrieved by analyzing the H.323 protocols in system <b>104</b> of <figref idref="f0008">Figure 6</figref>. These data include caller's IP address, and other identifying information, such as extension number, caller's name, or any other information that arrives via link 160. Optionally, the caller's IP address may be inferred from the other identifying information. These data are used by communication session management unit <b>13</b> to associate calls with extension numbers, callers' names or any other information that arrives via link 160.
Link 160 is a logical link that may be implemented in several ways, including: <ol id="ol0002" compact="compact" ol-style=""><li>1. On the same LAN that is used for Voice Over IP calls. In this manner, no additional hardware is needed on communication session management unit 13.</li><li>2. On a separate LAN from the LAN that is used for Voice Over IP calls. Under this alternative, communication session management unit 13 includes an additional network adapter, similar to NIC 16, that is used specifically for link 160.</li><li>3. On a serial connection using one of the serial ports of communication session management unit <b>13.</b></li></ol> Because link 160 is a logical link, <figref idref="f0009">Figure 8</figref> serves to illustrate all three of these implementations.
System 150 of <figref idref="f0009">Figure 8</figref> has the following advantages: <ol id="ol0003" compact="compact" ol-style=""><li>1. There is no dependence on the type of signaling used in the Voice Over IP system. System 150 works with all signaling types.</li><li>2. Link 160 may transfer more information than can be retrieved from the H.323 signaling protocols. This information may include, for example, application-specific information such as insurance policy number in the case of system 150 being a component of an insurance company's call center.</li><li>3. Because fewer messages arrive at communication session management unit 13, system 150 reduces the burden on the CPU of communication session management unit 13, resulting in an increase in the number of channels that can be recorded simultaneously.</li></ol>
System 150 of <figref idref="f0009">Figure 8</figref> may be reduced to practice using the following commercially available components: <ul id="ul0005" list-style="none" compact="compact"><li>Gatekeeper 114: Call Manager 3.0™ by Cisco Systems, Inc., San Jose CA</li><li>Link 160: A JTAPI™ connection of the Call Manager 3.0™</li><li>Terminals 108: VIP 30™ or SP 12+™, both by Cisco Systems, Inc., San Jose CA</li><li>Gateway <b>110:</b> Catalyst 3640™, by Cisco Systems, Inc., San Jose CA</li><li>MCU <b>112:</b> Conference Plug-In on the Call Manger 3.0™</li><li>Communicaticn session management unit <b>13:</b> Nicelog™, by Nice Systems Ltd., Ra'anana, Israel</li><li>LAN <b>106</b>: Switch Hub Catalyst 2924™, by Cisco Systems, Inc., San Jose CA</li></ul>
Contents5
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| WO0028425A | Cites | World Intellectual Property Organization (WIPO) |
| WO0052916A | Cites | World Intellectual Property Organization (WIPO) |
| WO9741674A | Cites | World Intellectual Property Organization (WIPO) |
| WO9944363A | Cites | World Intellectual Property Organization (WIPO) |
| US5664226A | Cites | United States of America |
51 members in 9 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 664755 | United States of America | – | |
| 66475500 | United States of America | A | |
| 66475500 | United States of America | A | |
| 0100874 | Israel | W | |
| 0100874 | Israel | W | |
| 2001000874 | – | – | – |
| 664755 | – | – | – |
| US20000664755 | – | – | – |
| WO2001IL00874 | – | – | – |
Members51
| Document | Office | Kind | |
|---|---|---|---|
| WO0013075A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU5901599A | Australia | A | |
| WO0013075A9 | World Intellectual Property Organization (WIPO) | A9 | |
| US6122665A | United States of America | A | |
| EP1108239A1 | European Patent Office (EPO) | A1 | |
| ZA200101522B | South Africa | B | |
| WO0225889A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU9220001A | Australia | A | |
| JP2002524004A | Japan | A | |
| WO0225889A3 | World Intellectual Property Organization (WIPO) | A3 | |
| ZA200202928B | South Africa | B | |
| EP1319299A2 | European Patent Office (EPO) | A2 | |
| JP2004509563A | Japan | A | |
| EP1108239A4 | European Patent Office (EPO) | A4 | |
| HK1058267A1 | Hong Kong, China | A1 | |
| AU775173B2 | Australia | B2 | |
| US2005033838A1 | United States of America | A1 | |
| US2005033839A1 | United States of America | A1 | |
| US2005033840A1 | United States of America | A1 | |
| US6865604B2 | United States of America | B2 | |
| US6871229B2 | United States of America | B2 | |
| US6880004B2 | United States of America | B2 | |
| EP1108239B1 | European Patent Office (EPO) | B1 | |
| AU781291B2 | Australia | B2 | |
| DE69925004D1 | Germany | D1 | |
| EP1545092A2 | European Patent Office (EPO) | A2 | |
| US2005198252A1 | United States of America | A1 | |
| EP1319299B1 | European Patent Office (EPO) | B1 | |
| AT314780T | Austria | T | |
| ATE314780T1 | Austria | T1 | |
| DE60116341D1 | Germany | D1 | |
| DE69925004T2 | Germany | T2 | |
| EP1635534A2 | European Patent Office (EPO) | A2 | |
| EP1635535A2 | European Patent Office (EPO) | A2 | |
| EP1635534A3 | European Patent Office (EPO) | A3 | |
| EP1635535A3 | European Patent Office (EPO) | A3 | |
| DE60116341T2 | Germany | T2 | |
| JP2007014006A | Japan | A | |
| HK1091620A1 | Hong Kong, China | A1 | |
| JP2007020204A | Japan | A | |
| JP2007058859A | Japan | A | |
| EP1814291A2 | European Patent Office (EPO) | A2 | |
| EP1635534B1 | European Patent Office (EPO) | B1 | |
| AT394865T | Austria | T | |
| ATE394865T1 | Austria | T1 | |
| DE60133949D1 | Germany | D1 | |
| US7581001B2 | United States of America | B2 | |
| EP1545092A3 | European Patent Office (EPO) | A3 | |
| EP1814291A3 | European Patent Office (EPO) | A3 | |
| EP1319299B2This record | European Patent Office (EPO) | B2 | |
| DE60116341T3 | Germany | T3 |
74 legal events, as 7 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent expired after termination of 20 yearsExpiredPE20 | PE20 | GB | |
| Expiry of rightR071 | R071 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Patent maintained in amended form27A | 27A | EP | |
| Designated contracting statesAK | AK | EP | |
| Epo decision maintaining patent in amended form now finalR102 | R102 | DE | |
| Patent maintained in amended formORIGINAL CODE: 0009272PUAH | PUAH | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: PATENT MAINTAINED AS AMENDEDSTAA | STAA | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Information provided on ipc code assigned after grantRIC2 | RIC2 | EP | |
| Information provided on ipc code assigned after grantRIC2 | RIC2 | EP | |
| Information provided on ipc code assigned after grantRIC2 | RIC2 | EP | |
| Information provided on ipc code assigned after grantRIC2 | RIC2 | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Opposition filed (corrected)OppositionR26 | R26 | EP | |
| Opposition data, opponent's data or that of the opponent's representative modifiedOppositionORIGINAL CODE: 0009299OPPOPLAB | PLAB | EP | |
| Appeal procedure closedAppealORIGINAL CODE: EPIDOSNNOA9OAPBU | APBU | EP | |
| Appeal reference modifiedAppealORIGINAL CODE: EPIDOSCREFNOAPAH | APAH | EP | |
| Date of receipt of statement of grounds of appeal recordedAppealORIGINAL CODE: EPIDOSNNOA3OAPBQ | APBQ | EP | |
| Appeal reference modifiedAppealORIGINAL CODE: EPIDOSCREFNOAPAH | APAH | EP | |
| Appeal reference recordedAppealORIGINAL CODE: EPIDOSNREFNOAPBM | APBM | EP | |
| Date of receipt of notice of appeal recordedAppealORIGINAL CODE: EPIDOSNNOA2OAPBP | APBP | EP | |
| Communication despatched that patent is revokedRevokedORIGINAL CODE: EPIDOSNREV1RDAF | RDAF | EP | |
| Reply to examination report in opposition receivedOppositionORIGINAL CODE: EPIDOSNORE3PLBC | PLBC | EP | |
| Information related to despatch of examination report in opposition + time limit modifiedOppositionORIGINAL CODE: EPIDOSCORE2PLAH | PLAH | EP | |
| Information related to despatch of examination report in opposition + time limit modifiedOppositionORIGINAL CODE: EPIDOSCORE2PLAH | PLAH | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Examination report in opposition despatched + time limitOppositionORIGINAL CODE: EPIDOSNORE2PLAY | PLAY | EP | |
| Opposition data, opponent's data or that of the opponent's representative modifiedOppositionORIGINAL CODE: 0009299OPPOPLAB | PLAB | EP | |
| Reply of patent proprietor to notice(s) of opposition receivedOppositionORIGINAL CODE: EPIDOSNOBS3PLBB | PLBB | EP | |
| Patent lapsedLapsedMM4A | MM4A | IE | |
| Information modified related to communication of a notice of opposition and request to file observations + time limitOppositionORIGINAL CODE: EPIDOSCOBS2PLAF | PLAF | EP | |
| Information modified related to communication of a notice of opposition and request to file observations + time limitOppositionORIGINAL CODE: EPIDOSCOBS2PLAF | PLAF | EP | |
| Opposition filedOpposition26 | 26 | EP | |
| Notice of opposition and request to file observation + time limit sentOppositionORIGINAL CODE: EPIDOSNOBS2PLAX | PLAX | EP | |
| Standard patents granted in hong kongGrantedGR | GR | HK | |
| Opposition filedOppositionORIGINAL CODE: 0009260PLBI | PLBI | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Fr: translation filedET | ET | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents actLapsedNLV1 | NLV1 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Corresponds to:REF | REF | EP | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1319299
- Publication, DOCDB
- 1319299
- Publication, EPODOC
- EP1319299
- Application
- 19724350
- Application, DOCDB
- 01972435
- Application, EPODOC
- EP20010972435
Titles3
- German
- KOMMUNIKATIONSVERWALTUNGSYSTEM FÜR COMPUTERNETZBASIERTE TELEFONE
- English
- COMMUNICATION MANAGEMENT SYSTEM FOR COMPUTER NETWORK BASED TELEPHONES
- French
- SYSTEME DE GESTION DE COMMUNICATION POUR TELEPHONES BASES SUR UN RESEAU INFORMATIQUE
Classification
- CPC, 7
- H04L65/1009
- H04M3/42221
- H04L29/06027
- H04M7/006
- H04L67/14
- H04L69/22
- H04L65/1106
- IPC, 7
- H04M3 42
- H04L29 08
- H04L29 06
- H04M7 00
- H04L12 56
- H04M1 65
- H04M11 10
Designated states20
- Contracting states, 20
- Austria
- Belgium
- Switzerland
- Cyprus
- Germany
- Denmark
- Spain
- Finland
- France
- United Kingdom
- Greece
- Ireland
- Italy
- Liechtenstein
- Luxembourg
- Monaco
- Netherlands (Kingdom of the)
- Portugal
- Sweden
- Türkiye
