APPARATUS, SYSTEM AND METHOD FOR MEDIA INDEPENDENT CALL CONTROL

Abstract: The present invention relates to an apparatus and a system for managing real-time communication in a network (100), where said apparatus comprises input/output means, which are connectable to a plurality of endpoints, each endpoint being associated with at least one terminal A, B, via said network (100). The apparatus further comprises means to check the status and availability of said endpoint terminals, means to receive a request for establishing a real-time communication link from a first endpoint to a second endpoint, at least one queuing means (105) comprising at least one queue (110, 111) for each endpoint, where said request is stored, and means to perform actions (112) associated with the content of said request from said first endpoint, the status and the availability of said first and second endpoint terminals and changes in said queuing means (105). The invention also relates to a system comprising a such apparatus and method for managing real-time communication in a network (100).

Description: APPARATUS, SYSTEM AND METHOD FOR MEDIA INDEPENDENT CALL CONTROL TECHNICAL FIELD The present invention relates to an apparatus for media independent call control when managing real-time communications in a network, especially for managing telephone calls within a computer network using existing protocol, for instance internet protocol (IP) . The invention also relates to a system and method for media independent call control. BACKGROUND OF THE INVENTION A telephone network normally operate with a dedicated server as an exchange or switch and a network which is separated from a computer network. Managing and controlling such a telephone network is difficult and unique solutions for different traffic cases makes this type of telephone network expensive and complex. This is especially true when managing a plurality of different types of calls, for example voice calls (telephony) , video calls (video conference) and/or computer calls (chat) . A telecommunication system is disclosed in US Patent 5,802,058, by Harris et al . , comprising communication terminals, such as multimedia workstations, a communication server and a computer network. The communication protocol over the computer network may be TCP (transfer control protocol) . The computer network interconnects the terminals and the server. The server, comprising a media manager, handles a requested call to marshal resources in the network to establish connection between two multimedia terminals in the network. A transaction processing system and method is disclosed in US Patent 5,793,861 by Haigh, comprising a memory for storing transactions in a queue and a processor. The processor includes an identifier generator for generating an identifier for each transaction in the queue. The system may handle transactions including inbound and outbound calls as well as electronic mail, voice mail, video calls and facsimile. A problem with the prior art is how call control or call management are to be implemented, taking into account the diversity of different kind of calls, different types of endpoints and a rising demand for more advanced and complex call control services, such as call forwarding and automatic call distribution. The call control and call management area is expanding in complexity and importance. Traditional technology solves this problem with a wide range of specialised switches, routers and other telephony equipment, resulting in inefficient and very expensive solutions. SUMMARY OF THE INVENTION The invention of an unified and general apparatus for media independent call control makes the task, mentioned above, more cost effective and flexible, allowing easy creation of advanced call control services and implementation of unified monitoring functions for management. The above mentioned problem is solved by managing all real- time communication in an apparatus within a network, where said apparatus comprises input/output means, which are connectable to a plurality of endpoints, each endpoint being associated with at least one terminal, via said network. The apparatus further comprises means to check the status and availability of said endpoint terminals through a signalling network, means to receive a request for establishing a realtime communication link from a first endpoint terminal to a second endpoint terminal, at least one queuing means comprising at least one queue for each endpoint, where said request is stored, and means to perform actions associated with the content of said request from said first endpoint, the status and the availability of said first and second endpoint terminals and changes in said queuing means. The problem is also solved by the system according to claim 10 and the method according to claim 11. An advantage with the present invention is that it may be implemented at a low cost. Another advantage with the present invention is that it is possible to manage different types of endpoints within the same apparatus. Still another advantage with the present invention is that any type of call may be managed by the same apparatus. Further scope of applicability of the present invention will become apparent from the detailed description given hereinafter. However, it should be understood that the detailed description and specific examples, while indicating preferred embodiments of the invention, are given by way of illustration only, since various changes and modifications within the scope of the invention will become apparent to those skilled in the art from this detailed description. BRIEF DESCRIPTION OF DRAWINGS Fig. la shows a schematic layout of an computer network with a server comprising said inventive apparatus. Fig. lb shows an overview of the parts of the server in fig la. Fig. 2 shows a flowchart of a method for establishing a connection between two endpoints according to the invention. Fig. 3 shows a flowchart of a method for establishing a connection between an external phone and a call center according to the invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the description below the term "endpoint" is used to indicated a logical address, such as a person registered in the network, a group of persons (call center) , a specific terminal or a group of specific terminals (e.g. terminals in a room) . A terminal, having a physical address within the network, is a communication equipment with connectivity to the network. Logical addresses, i.e. endpoints, that is associated with at least one terminal is called active endpoints and endpoints having no terminal associated to it is called inactive endpoints. Both active and inactive endpoints can be handled by the inventive apparatus as described below. Figure la shows a computer network 100, interconnecting a plurality of terminals, such as a telephone A via an adapter 106, multimedia terminals 107 with a telephone B and E, a standard computer terminal C connected to internet 108 via a first gateway 101 or a telephone D connected to the public telephone network PSTN via a second gateway 102. These terminals are shown as an example and the computer network could of course include several terminals of one type and/or other types of terminals. The operation and construction of the gateways 101, 102 are known to a person skilled in the art, and are not disclosed in this application since it is not a part of the present invention. The network 100 may communicate with any type of protocol, but is preferably based on an internet protocol (IP) . A server 103 is also interconnected with each network 100 and comprises a control unit 104 and a queuing arrangement 105. The queuing arrangement 105 comprises a number of queues corresponding to the registered number of endpoints in the network. An endpoint, being a logical address as described above, could be a person, a group of persons (Call center) , a location with several terminals (room) or a specific terminal, where a terminal may be associated with several endpoints. A person registered in the network as an endpoint also have at least one associated queue. When this person log into a network, that person will be associated with a specific network terminal, i.e. a physical address, in the network 100, thus activating the endpoint. A table is created in the server with cross-references for the associated terminals, physical addresses, and the persons, logical addresses, logged into the network. Figure lb shows an overview of the parts of the server in figure la, and how they interact with the endpoints in the system. The server 103 comprises a queuing arrangement 105, having at least one queue for each endpoint in the network. In this example there is a first queue 110 associated with a first endpoint at terminal A and a second queue 111 for a second endpoint at terminal B. The server also comprises a control unit 104, which in turn comprises several event handlers 112. Each event handler is associated with a specific action which event handler is trigged by an event taking place in the system. These events may take place in the queuing arrangement 105 or at the endpoint terminals A, B. The control unit 104 is in connection with all terminals in the network through a signalling network 114, which is a part of the network 100. The control unit 104 is also in contact with the queuing arrangement 105 via a queue control connection 115, within the server 103. An event occurs when there is changes in the queuing arrangement 105, for instance when a first terminal A requests a link to a second terminal B by entering this request into the second queue 111 as an object 113. The action performed by an event handler is also associated with the content of the request from the first endpoint terminal A, the status and the availability of the terminals A, B of said first and second endpoint . When the first endpoint A sends a request to the server 103 to establish a real-time communication link to endpoint B, the request is stored in the second queue 111 as an object 113. The object contains information regarding the identity of the first endpoint A, the identity of the second endpoint B, the type of call (e.g. phone call, video conference, chat) . It may also contain information about subject related information, call priority, create time information etc. The subject related information may be entered via a web-site or by using keyset code receivers. Information regarding call priority may be used to reprioritise pending calls in the queue, if a new request for real-time communication has a higher priority than older pending requests. The create time information may be used for extracting statistics about waiting time before a communication link is established. Other types of statistics are possible for measuring traffic conditions within the network. An event handler trigged by the entry of the object in the second queue performs actions associated with the type of call, the identity of the first and second endpoint. The event handler also checks the status and availability of the terminals A, B of the first and the second endpoint. The performance of the event handler is also dependent on the status of the queuing arrangements, e.g. are there any other pending calls for the second endpoint. Other event handlers are involved to deal with e.g. time-out and termination of a call. There is of course a possibility to have different event handlers depending on the type of requested communication link. All types of different requested links to an endpoint may be stored in the same queue, but it is possible to implement different queues for different types of requested communication links, e.g. a separate queue for voice calls and a second queue for other real-time communication requests to an endpoint . When all conditions for a real-time communication link is met, the communication link 116 is set up between the terminals of the first and second endpoint. The object is kept in the queue as long as the link is in use. The control unit may also comprise a logging function 117 where a history of all events and the time they occurred are stored. This information can be used to optimise the performance in the network. It can also be used for debiting purposes and maintenance of the system. The second endpoint B may comprise a group of terminals, either in a specific room or as a call center. The terminals of a call center does not have to be geographically situated, in order to belong to the same group. Examples of such groups are support or helpdesk for banking, computers, etc. Whenever a terminal in the group is available the requested communication link is set up with that terminal, or if there is additional subject related information the request may be redirected to a specialist within a call center to deal with that specific matter, e.g. to a loan department in a bank. The function of the present invention will be given as a number of examples with reference to figure 1, 2 and 3, illustrating different aspects of the invention. Example 1 A first person, named Adam, wants to make a phone call to a second person, named Bert, and picks up the phone A, which is automatically connected to the network 100 via the adapter 106, having a first physical address. When dialling to Bert, Adam dials Bert's phone number, the logical address to Bert, and thereby sends a request to open a real-time connection to Bert, being logged into the network at a terminal having a second physical address, box 201. The server receives the request and creates an object describing the type of call, box 202, e.g. voice call or video call, and record the object into Bert's queue, box 203. In order to be able to establish this connection Bert have to be registered as an active endpoint in the server, having his own queue . Any change in the status or the content of the queue, or the status or the content of each pending object will initiate an event which starts a generic event handler, adaptive to present statuses and conditions. A such event is entry of an object into Bert's queue, as shown in box 204. In box 205, the event handler checks the status of Bert, i.e. the state of Bert's terminal B (e.g. busy or not) and the conditions for the call to be connected (e.g. forwarding of calls to another terminal) . The event handler also checks if Bert is available in the network and at which terminal he is logged into the network 100. In this example Bert is logged into the network 100 at terminal B. This terminal also have a telephone which means that a connection for a phone call, between phone A and terminal B, may be established. The object is recorded in the queue after any other pending object. If there are previous pending objects in the queue, they may be handled chronologically. Other suitable ways of determining which order the pending objects, in a queue to an endpoint, should be handled may be used, such as arranging the incoming requests on a priority basis. In box 206 the event handler performs actions depending on the events that occur in the system due to present status and conditions for the request and the status and condition of the different queues. The event handler is a generic handler which can perform several actions independent of each other instead of having a pluralities of event handlers. In this example there are no other requests in the queue, being an event, which initiate the event handler, controlled by the control unit 104, to notify the terminal B, to which Bert is connected, of an incoming call . An acceptance signal is forwarded from terminal B to terminal A if a call is accepted, resulting in an established connection between A and B, i.e. the endpoints Adam and Bert, box 207. If B does not send an acceptance signal back to A, several other actions may be initiated, such as terminating the call by removing the appropriate object from Bert's queue, box 208, transferring the call to a new queue if Bert has forwarded incoming calls to another andpoint within the network, box 209, or redirecting the call to a location outside the network, box 210. Example 2 A customer wants to get help from a helpdesk (call center) for computers, by picking up the phone D and dialing a number, the logical address of the helpdesk, connecting D through a PSTN network via a gateway 102 to the network 100. A link for real- time communication is requested with the helpdesk, being a registered endpoint in the system, comprising in this example of terminals A and B, see box 301. An object is created describing the request in box 302, and in this case the identity of the caller is the gateway 101, being itself an endpoint in the system, and the identity of the receiving terminal may be any of a plurality of different terminals, all belonging to the receiving endpoint (helpdesk) . Additional information regarding subject related information may be entered by the caller D by using keyset codes, directing the call to appropriate support personnel. In this case the person being at terminal A or B may be the most appropriate person to talk to depending on which type of problem D wants to have support. This information is also stored in the object, which object is placed in a helpdesk endpoint queue associated with terminals A and B, box 303. The queue entry trigs a generic event handler to perform actions associated with present statuses and conditions as previously described, box 304. In box 305 the event handler checks the status of terminals A and B, for instance if the person associated with terminal A is selected depending on previously entered information by keyset codes only the status of terminal A is checked. The event handler also checks the conditions for the call to be connected the appropriate terminal . Other ways of selecting a terminal within a call center used in present call center systems may of course be implemented with the present inventive apparatus. Actions associated with the present statuses and conditions of the request is performed in box 306, as described in connection with box 206 in example 1 above. If the conditions are met for establishing a connection between the calling party's terminal D and one terminal of the endpoint (A or B) , box 307, the communication link between the customers telephone D via the gateway 102 and the available terminal is established. If the calling party hangs up the phone D the object is removed from the endpoint 's queue, box 308. Another feature with a call center solution is that if there is a long waiting time to establish a communication link for a pending request it is possible for the control unit 104 to ask for the telephone number of the calling party and register it in the object. The calling party can now hang up the phone D and the control unit redials to D when a terminal belonging to the endpoint (helpdesk) is available, box 309. The invention being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.

Claims: CLAIMS 1. An apparatus for media independent call control in a network (100), said apparatus having input/output means which are connectable to a plurality of endpoints, each endpoint being associated with at least one terminal (A, B) connected to said network (100), characterised in that said apparatus further comprises means to check the status and availability of the at least one terminal (A, B) of said endpoints through a signalling network (114) , means to receive a request for establishing a real-time communication link (116) from a first endpoint to a second endpoint , at least one queuing means (105) comprising at least one queue (110, 111) for each endpoint, where said request is stored, and means to perform actions (112) associated with the content of said request from said first endpoint, the status and the availability of the terminals (A, B) of said first and second endpoints, and changes in said queuing means (105) . 2. Apparatus for managing real-time communication in a network according to claim 1, characterised in that said request, which is stored in said queue as an object (113), generate events, where a specific event causes one out of several event handlers (112), or a generic event handler, to perform actions associated with that specific event. 3. Apparatus for managing real-time communication in a network according to claim 2 , characterised in that said event handlers (112), or generic event handler, are divided into several classes, where each class of event handlers may perform actions associated with events generated in different queues (110, 111) . 4. Apparatus for managing real-time communication in a network according to claim 2 or 3 , characterised in that said object (113) comprises information regarding said first and second endpoint and the type of call . 5. Apparatus for managing real-time communication in a network according to claim 4, characterised in that said object (113) further comprises information regarding call priority, create time information and/or calling subject. 6. Apparatus for managing real-time communication in a network according to any of claims 1-5, characterised in that said apparatus is implemented in a server (103) connectable to a computer network (100) . 7. Apparatus for managing real-time communication in a network according to claim 6, characterised in that said means for checking the status and availability of the at least one terminal of said endpoints is implemented in a control unit (104) within said server (103) . 8. Apparatus for managing real-time communication in a network according to any of claims 1-7, characterised in that at least one of said endpoints is associated with a plurality of terminals. 9. Apparatus for managing real-time communication in a network according to any of claims 1-8, characterised in that said communication link (116) is established for a phone call, a video conference and/or a chat . 10. A system for managing real-time communication comprising a plurality of endpoints, each endpoint being associated with at least one terminal (A-E) connected to a network (100), and a server (103), the network interconnecting said terminals (A-E) and server (100) , characterised in that said server comprises an apparatus according to any of claims 1-9. 11. A method for media independent call control in a network (100), said network interconnecting a plurality of endpoints, each endpoint being associated with at least one terminal (A- E) connected to said network (100), characterised in that said network (100) further is interconnected to an apparatus according to claim 1, said method comprises the following steps : transmitting a request from a first endpoint, being associated with a first terminal (A) , to said apparatus to establish a real-time communication link (116) with a second endpoint, being associated with at least one second terminal (B) , for a call , storing the content of said request in a queue (111) for the second endpoint, said queue (111) being a part of a queuing means (105) , checking the status and the availability of said first and second terminals (A, B) through a signalling network (114) , performing actions associated with the content of said request from said first endpoint, the status and the availability of said first and second terminals (A, B) , and changes in said queuing means (105) . 12. Method for setting up a call in a computer network (100) according to claim 11, characterised by said method further comprises the steps of: creating an object (113) , which is stored in the queue (111) , describing the type of call requested, generating events, where a specific event causes one out of several event handlers (112), or a generic event handler, to perform actions associated with that specific event.

Inventors: HALLGREN ULF, OLSSON THOMAS, HALLGREN, ULF, OLSSON, THOMAS
Applicants: CASTCOM AB, HALLGREN ULF, OLSSON THOMAS, HALLGREN, ULF, OLSSON, THOMAS
Application year: 2000
Main classification: H04Q3
IPC codes: H04L12, H04L29, H04M7, H04Q3