1. Field of the Invention
The present invention relates generally to call-logging. More specifically, the present invention relates to a system and method for call-logging for H.323 applications.
2. Description of the Related Art
As more and more business is conducted via telecommunication networks, there is a need to maintain accurate records of the telecommunications that took place. These records not only help to keep an accurate record of the calls but also help to prevent billing errors, fraud, service discrepancies, etc. H.323 is a standard approved by the International Telecommunication Union (ITU) to promote compatibility of real-time point-to-point and multipoint audio, video, and data communication over packet based networks, such as the Internet. Many of the existing H.323 protocols or video conferencing systems include call-logging features to record users' call activities. However, many of these existing systems save the call log data in their own proprietary format. Consequently, the user will need to use a custom interface to access the data. Moreover, when the user moves from one H.323 application to another H.323 application, the user will have to learn a new user interface in order to access the call log.
Additionally, the existing technology integrates the call-logging feature into the application itself, which causes the user to access the call log through a custom interface, which in turn raises the issues described above. Accordingly, there is a need for a call-logging feature that is independent of the application and provides the user the flexibility to log the call record into an application program directly without having to use a custom interface.
Broadly speaking, the present invention fills these needs by providing a call-logging system which functions independently of any application program and works compatibly with the existing calendar application program of a user.
The present invention provides a call-logging mechanism for standard H.323 applications without being integrated with a specific H.323 application. The present invention examines TCP/IP and/or UDP/IP packets coming in and out of a packet based system. By monitoring the TCP connection state of port 1720, this embodiment described herein can detect H.323 call connection and termination automatically. As a result, the present invention can perform H.323 call-logging without any notification from the H.323 application. Information about the call is logged directly into the existing calendar application of the user.
It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, or a method. Several inventive embodiments of the present invention are described below.
In one embodiment, a method for call-logging is provided. The method includes monitoring packet headers transmitted from and received by a port associated with a computer device. Then, the port number of the computer device is determined. Subsequently, an identification is made as to whether a communication channel for passing data has been established. If the communication channel has been established and the port number is determined to be associated with an H.323 application then the method moves on to record the call start time. When the communication channel is terminated, the method proceeds to record the call end time. Thereafter, the call duration is determined by subtracting the call start time from the call end time. After that, the calendar application is invoked and the call duration is logged into the calendar application.
In another embodiment, a system for call-logging is provided. The system includes a central processing unit. The system further includes a memory unit. The memory unit includes monitoring logic. The monitoring logic is configured to monitor network traffic data being received by the system. The monitoring logic detects packet types within the incoming network traffic data. The memory unit also includes logging logic. The logging logic is configured to invoke a calendar application in response to being notified by the monitoring logic that an H.323 call has ended. The logging logic logs the call duration into the calendar application.
In another embodiment, a system for call-logging is provided. The system includes a central processing unit. The system further includes a memory unit. The memory unit includes a monitoring logic. The monitoring logic is configured to monitor network traffic data being received by the system. The monitoring logic detects packet types within the incoming network traffic data. The memory unit also includes parser logic that is capable of parsing the network traffic data to extract network content data information that provides information about an incoming call. The memory unit also includes logging logic that is configured to invoke a calendar application in response to being notified by the monitoring logic that an H.323 call has ended. The logging logic logs the call duration into the calendar application program.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, and like reference numerals designate like structural elements.
An invention is disclosed for call-logging for H.323 applications. In the present invention, the call logger is independent of the application programs and is adaptable to the user's existing calendar application program. The existing calendar application program is used as a database where the logger records the call duration and other information about a particular call. The invention keeps an automatic log of calls by detecting H.323 call connection and termination automatically. As a result, the invention can perform an H.323 call-logging task without any direct notification from the H.323 application.
FIG. I shows an exemplary packet based communication network, in accordance with an embodiment of the present invention. The network includes participants 120 exchanging audio, video, IP telephony, and other types of data with each other or data server 18. In such an arrangement, the data exchange can be peer-to-peer 16, client-server 114 and various combinations thereof. One skilled in the art will appreciate that in various embodiments, the communication network can be a wireless network, a wired network, or a combination thereof.
The H.323 application makes a TCP connection to another H.323 application that is listening on TCP port 1720. Then, in the subsequent data exchange, both applications open up more TCP and UDP ports for control data and media transmission.
Whenever a new TCP connection is established, TCP packets with SYN, SYN+ACK, and ACK are exchanged between the client and the server. In order to establish a TCP connection between a client and a server, the client sends a packet with synchronize sequence numbers flag (SYN), specifying the port number of the server that the client wants to connect to, and the client's initial sequence number. The server then responds with its own packet with SYN containing the server's initial sequence number (ISN). The server also acknowledges (ACK) the client's SYN by ACKing the client's ISN plus one. The client subsequently acknowledges the SYN from the server by ACKing the server's ISN plus one. One skilled in the art will appreciate and understand that the handshake sequence described above is exemplary and that other types of handshake sequence may be used to establish a TCP connection. Whenever the connection needs to be terminated either party can send out a TCP packet with the FIN flag ON and notify the other that the TCP connection has been terminated. Accordingly, the monitoring logic 208 can determine the initiation and termination of H.323 calls by monitoring the TCP/IP packet for port 1720 with TCP flag SYN or FIN.
Referring back to
The calls that are described in the present invention take place over networks and the networks are developed with each layer responsible for a different facet of the communication.
The application layer 402 lies above the transport layer 426. The application layer 426 has different protocols, which are equipped to handle the details of any application that is executed on the server 118 or participants 120. The different type of protocols at the application layer may include Telnet, File Transfer Protocol (FTP), Simple Mail Transfer Protocol, (SMTP), Simple Network Management Protocol (SNMP), File transfer, access, and management (FTAM), Remote File System (RFS), etc. Those skilled in the art will recognize and appreciate the details of each of the above-mentioned application layer protocols examples. It should be understood that the principles of the present invention as described herein can be equally applied regardless of the specific application layer protocol.
Several applications are executed at the application layer 402.
Once the port number is determined to be one that is associated with an H.323 application, then in operation 710 the monitoring logic alerts the logging logic to record call start time. When the monitoring logic senses a port 1720 connection termination, the monitoring logic alerts the logging logic to record the call end time as shown in operation 710. Once the call is ended, then in operation 712, the logging logic determines the call duration by subtracting the call start time from the call end time. Thereafter in operation 714, the logging logic invokes a calendar application via the calendar application API. The method then advances to operation 716, where the duration of the call is logged into the calendar application. It should be appreciated that the calendar application may be any commercially available calendar applications, which include calendar application associated with commonly used email applications. As mentioned above, additional information may be recorded as provided through parser logic.
As described above, the advantages of the present invention are numerous. Firstly, the call-logging feature function is independent of a particular application. As a result, the present invention can function with any of the existing calendar application of the user. Therefore, the user only needs to learn to use his/her calendar application. In addition, regardless of the number of different H.323 applications a user likes to run, the invention is adaptable to the many different H.323 applications. The present invention virtually eliminates the need for custom user interface, in order to access a call log.
With the above embodiments in mind, it should be understood that the invention may be practiced with other computer system configurations including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers and the like. Furthermore, the invention may employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. Further, the manipulations performed are often referred to in terms, such as producing, identifying, determining, or comparing.
Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus may be specially constructed for the required purposes, or it may be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, which thereafter can be read by a computer system. The computer readable medium also includes an electromagnetic carrier wave in which the computer code is embodied. Examples of the computer readable medium include hard drives, network attached storage (NAS), read-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. The computer readable medium can also be distributed over a network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.