Not Applicable
Not Applicable
1. Technical Field
This invention relates in general to telecommunications and, more particularly, to a digital communications network.
2. Description of the Related Art
Over the last two decades, communications capabilities have increased dramatically. Current communication networks are now capable of providing sophisticated features such as multiple party conferencing with multiple private sidebar conversations, programmable “follow-me” calling, and sophisticated voice mail options.
As telecommunications has become more powerful, the ability to misuse the power of the telecommunications system has become more evident. One example of misuse would be the ability of minors to access adult-only sites. Another example would be the use of the telecommunications system to perpetrate a crime. While in certain cases, line tapping is available to law enforcement agencies, no such capability is available to parents and business owners who may need assurance that there telephonic equipment is not being used for illicit or immoral purposes.
Therefore, a need has arisen for a method and apparatus allowing monitoring of the use of a telecommunication device.
In the present invention, a communications system includes a data network and a monitored terminal coupled to the network for communicating by sending and receiving data over the network. A monitoring terminal monitors user activity on the monitored terminal. A graphical proxy server in communication with the monitored terminal and with the monitoring terminal sends graphical commands to implement a graphical interface on the monitored terminal and sends graphical commands to the monitoring terminal indicative of actions taken on the monitored terminal.
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
The present invention is best understood in relation to
SIP telephones 18 (or other VOIP phones, such as H.323 phones) and SIP proxy server 19 can be connected directly to the network 10. SIP telephones 18 are intelligent devices that contain processors that are independent from a central switching location (i.e., a central office) and have one or more processors to create, modify and terminate communication sessions.
A trunk gateway 20 provides an interface between the packet network 10 and the PSTN (public switched telephone network) 22.
Softswitches 24, application servers 26 and media servers 28 are instrumental in providing advanced functions. A softswitch 24 is a software-based entity that provides call control functionality. A softswitch 24 may support multiple packet-based protocols, such as SIP, MGCP, MEGACO and multiple telephony and data protocols, such as CAS, INAP, ISDN, SS7, TCAP, TCP/IP. A softswitch 24 may interface with the PSTN 22 through various gateways.
In a SIP environment, a softswitch 24 may act as a SIP proxy server for name resolution and user location—similar to a domain server. In this way, a name (similar to a domain name) can be dynamically associated with a current IP address. Also, a SIP proxy server may be used for redirection of packets, where the proxy server “pretends” to the other network elements that it is the user's SIP terminal and forwards messages to the real SIP terminal (or conceivably to another SIP Proxy).
Application servers 26 provide services that may result in termination of a call, such as voice mail, conference bridging, pre-paid calling, or delivering services and information to an end user. An application server can be coupled to other data networks, such as the Internet, to gain access to information systems.
Media servers 26 provide media processing under control of a media gateway controller (not shown). The media server 26 could provide, for example, voice storage and responses for voice mail, or video streams.
Graphical terminals (described below) 32 communicate with an associated graphical proxy 34 with other SIP phones (and similar VOIP devices) over the network 10 using a graphics protocol between the graphics terminals 32 and the graphical proxy 34, where the graphics protocol controls the GUI of the graphics terminal and provides control information to the graphical proxy 34 regarding a user's actions with the packet phone's GUI. The graphical proxy 34 communicates with other devices over the network using SIP (or similar protocol).
Ser. No. 10/092,075, referenced above, describes the use of a graphical proxy 34 to control the GUI of a “dumb” packet phone, rather than an “intelligent” SIP phone. Responsive to actions by the user, the graphical proxy sends commands to the dumb packet phone to control the operation of the user interface, as opposed to the SIP phone controlling the user interface internally. This provides a significant advantage over the prior art, since the network provider could control the GUI of the packet telephones to add value to its network services and can improve the consistency of the user interface between phones.
A large class of computing devices could function as a graphics terminal 32, even though these devices do not have the client communication stack normally associated with a packet phone. Mainly, a graphics terminal 32 includes sound and display capabilities, with network communications functionality. Devices of this type would include personal computers (including desktop and portable computers), personal digital assistants (PDAs, including pocket PCs) and so on. It is assumed that these devices include browser software with pluggable and downloadable MACROMEDIA FLASH (or other interactive graphics design software) and have a TCP/IP and RTP (Real-time Transport Protocol) stack.
In operation, when there is activity on the graphical interface of the monitored terminal 32a, the graphical proxy 34 sends graphical commands to both the monitored terminal 32a and the monitoring terminal 32b. From the viewpoint of the user of the monitored terminal 34a, operation of the telephone is normal, and the user interacts with the user interface to operate the device 32a to create and terminate connections with other devices in the telecommunications network 8. Additionally, the monitored terminal 32a may send presence information, discussed below, to the graphical proxy 34.
The monitoring terminal 32b, on the other hand, receives the same graphical commands as the monitored terminal 32a and thus displays actions being performed on the monitored terminal 32a, allowing the user of the monitoring terminal 32b to visually observe the activity on the monitored terminal 32a. The monitoring terminal 32b may also receive presence information associated with the monitored terminal.
The remote monitoring system of
The monitored terminal 32a could be identified by the user of the monitoring terminal 32b by IP address or a name mapped to the IP address, or the monitored terminal 32 could be a terminal currently being used by a particular user identified by the user of the monitoring terminal 32b.
Any one of the graphical terminals 32 shown in
The terminal management system 42 is responsible for registering the associated graphical terminals 32 with the graphical proxy 34 and then registering on behalf of each associated graphical terminal 32 with the SIP Proxy 19. The terminal management system 42 handles the calls for each associated graphical terminal 32 and interacts with the graphical server 40 to provide a customized GUI for each graphical terminal 32 to display current call status.
The terminal manager 50 manages all the associated graphical terminals 32. When a user starts the FLASH client on a graphical terminal 32, the graphical terminal establishes a connection with the terminal manager 50. The terminal manager 50 then instantiates a terminal controller 56 for that graphical terminal 32 and maintains the mapping between the graphical terminal 32 and the respective terminal controller 50. The terminal manager 50 implements a Super user agent 64, which receives requests for connection for all terminals 32, identifies which terminal is associated with the request, and then passes the request to the user agent 66 (see
By using a Super user agent 64 to receive and send SIP messages to the SIP proxy server 19, only a single port is needed to receive and send messages associated with all terminal controllers. If each user agent was separately registered on behalf of its associated graphical terminal 32, a separate port would required for each terminal controller.
The call control system 68 handles incoming and outgoing calls for its associated terminal 32 and manages all active calls. It gets information on the incoming messages from the user agent 66 and provides information on user responses back to the user agent. The call control system 68 also generates service requests and sends them to the graphical server 40 to get a URL (Uniform Resource Locator) for an appropriate FLASH page displaying the desired user interface screen.
For example, if there is an incoming call, the call control system 68 generates a request to “show incoming call”. The graphical server 40 then returns the URL of the FLASH page with the display for an incoming call. The incoming call FLASH page may include multiple graphical elements, but will not include specific text relevant to the current call, such as the name of the caller. The call control system 68 assembles the URL and the data that has to be filled in the FLASH page such as the Callers and Callee's name in the form of XML message and passes it to the presentation manager 70. The FLASH client 60 on the associated terminal 32 has a built in XML parser 61; it loads the FLASH page from the given URL and fills the fields with the data provided in the XML message. The call control system 68 also receives GUI response messages from the terminal 32 through the presentation manager 70 and invokes the translator 54 to parse the XML messages and translate them to JAVA objects that can be used by the call control system 68. The call control system 68 also sends RTP setup and RTP tear down messages to the RTP controller 74 (See
The presentation manager 70 manages the display of its associated terminal 32. The terminal 32 could support several “phone lines”; in other words a single terminal can handle more than one active call at a time. The presentation manager 70 maintains individual folders for different calls. The call control system 68 sends the graphical representation of call status for a particular call to the presentation manager 70. The presentation manager 70 decides where to display this graphical representation. In a preferred embodiment, the presentation manager 70 communicates with the graphical client 60 in FLASH through XML sockets. When the presentation manager 70 of a monitored terminal 32a receives an XML socket from the monitored terminal 32a, a copy of the XML socket is sent to the presentation manager 70 associated with the monitoring terminal 32b. In the preferred embodiment, for the monitored call, the presentation manager 70 associated with the monitoring terminal 32b does not receive XML messages from the monitoring terminal 32b; i.e., the user of the monitored terminal 32b cannot interact with the call activity. Further, the user agent 66 associated with the monitored terminal 32b does not send outgoing SIP messages for the monitored call.
Referring again to
The graphical server 40 generates the GUI for the terminals 32. For each associated terminal 32, the graphical server queries the database 58 to get the display capabilities of the terminal, such as size of the screen, depth of color etc. These capabilities are provided to the terminal manager 50 by the terminal 32 at the time of registration and stored in the database 58. When the graphical server 40 receives a request for a GUI, it customizes the GUI to the capabilities of the particular terminal. The graphical server 40 includes a GUI generator 46 and a GUI customizer 48.
The GUI generator 46 stores a stack of static FLASH pages. The request parser 44 parses the service requests coming from the terminal controllers 56. Based on the particular service request, the GUI generator returns an appropriate FLASH page URL to the requesting terminal controller 56.
The GUI customizer 48 customizes a selected FLASH page based on the capabilities of the particular graphical terminal 32.
The graphical proxy 34 uses the database 58 (which could be part of the graphical proxy 34 or a separate device) to store user related information. The information stored in the database 58 includes: (1) user name and password of registered users, (2) current IP address of active registered users; (3) display capabilities of different terminals such as size of the screen color depth, etc., (4) media features that the user would like to use for communication with the remote party and (5) telephony features that the user has subscribed to such as Call Forwarding, Conferencing, Breakout room etc.
A graphical client application 60 runs on each terminal 32.
The architecture described in connection with
As an illustration of the operation of the network 8,
In step 84 (assuming the monitoring is authorized), a terminal controller 56 is instantiated for the monitoring terminal 32b. In step 86, the monitoring terminal 32b is registered with the Super User Agent 64 to identify the monitoring terminal 32b as a recipient of copies of SIP messages sent to the monitored terminal 32a. In step 88, the monitoring terminal 32b is registered with the presentation manager 70 of the monitored terminal 32a to receive copies of XML objects from the monitored terminal 32a. At this point, the monitoring terminal 32b will have a display that mirrors the actions on the interface of the monitored terminal 32a. Since the monitoring terminal 32b has its own terminal controller 56, however, the display will be optimized for the capabilities of the monitoring terminal 32b. For convenience, the monitoring station 32b may provide a notification when the monitored station receives or initiates a call.
If multiple calls are being monitored, each call will have a separate folder in the presentation manager 70 of the monitoring station 72.
While the invention has been discussed in connection with monitoring a telecommunication device with an graphic display controlled by a graphical proxy 34, by providing a remote monitoring application at the softswitch 24, user actions in connection with an ordinary phone, or a phone with an internally-controlled graphic display could be forwarded to the graphical proxy 34, which would pass this information to the terminal controller associated with the monitoring terminal 32b.
Further, with additional modifications at the softswitch 24, the monitoring station 32b could be allowed to bridge into a communication session established by a monitored terminal 32a, i.e., the monitoring terminal 32a could receive voice packets as well has display information. Alternatively, the recording of the conversation could be done in the monitored terminal 32a in an audio file, such as a .WAV or .MP3 file; and this file could be transmitted to the monitoring terminal 32b upon completion of the conversation, or intermittently during the conversation (to avoid detection). The program for recording and transmitting the conversation could be initiated by the graphical proxy 34.
In the event that the activity on the monitored terminal 32b is being archived for later display, the SIP messages and XML objects sent to the terminal controller 56 of the monitored terminal 32a can be time stamped and stored in a file. Alternatively, the XML objects received by the monitoring terminal 32b can be time stamped and stored in a file on the monitoring terminal 32b.
In addition to monitoring interaction of the graphical interface for telephonic conversations, the monitoring terminal could also perform presence monitoring. In presence monitoring, the monitoring terminal 32b can receive information on the identity of any persons using the monitoring terminal 32a and the times of such use, how the monitoring terminal is used (i.e., what programs were used), and the identities of parties in communication with the monitoring terminal 32a, including web sites, new groups, other data networks, intermediate sites providing communication between two users, and other persons. The presence information can be transferred to the monitoring terminal 32b via the graphical proxy 34. The monitoring terminal 32b could use the presence information, for example, to indicate whether a co-worker is in his/her office, in a telephonic conversation, or otherwise occupied.
While the preferred embodiment of the invention has been discussed using specific languages and protocols, it would be known to one skilled in the art that alternative languages, application development tools, and protocols could be used in their place for a given implementation. For example, JAVA could be replaced in whole or part by C++ or similar programming environment and SIP could be replaced by H.323.
Although the Detailed Description of the invention has been directed to certain exemplary embodiments, various modifications of these embodiments, as well as alternative embodiments, will be suggested to those skilled in the art. The invention encompasses any modifications or alternative embodiments that fall within the scope of the claims.