AN AGENT BASED DISTRIBUTED CALL SETUP METHOD
TECHNICAL FIELD OF THE INVENTION
The present invention relates generally to agent-based methods for setting up calls between at least two parties . More particularly the invention relates to a method of performing call screening and terminal matching during call setup when the parties involved each has several communication terminals.
The invention also relates to an arrangement for carrying out said method.
DESCRIPTION OF RELATED ART
Today it is very common that a person has several communication terminals with different capabilities, e.g. a mobile phone, an Internet connected computer, a fax or an ordinary phone. In order to reach a person, a phone number has to be dialled or an Internet address or an URL (Universal Resource Locator) has to be entered on the calling terminal to set up the call . The phone number dialled is actually an identification of the terminal or extension that is dialled; hence the phone number maps directly to a physical address .
One of the problems with the traditional method of setting up a call is that when a person changes terminals his physical address changes and a new number must be dialled to reach him. It is thus necessary for the calling party to know the addresses of the called party's terminals since he does not know on which terminals the called party is currently available. The calling party is also forced to try one network after the other before finally reaching the other party. The parties must also find terminals with matching capabilities in order to set up a call.
Various solutions to the problem of call setup between parties with several communication terminals have been proposed. These include e.g. call forwarding or use of a personal number. It is, however, very difficult to configure call screening and forwarding of calls if a person has several terminals since it normally must be performed from each terminal on a per call basis. The fact that it most probably is different operators for each communication terminal also means that the user has to pay for all call forwarding. A personal number service, on the other hand, suffers from the drawback that the party may forget to report in to the system when he changes location.
In addition to these solutions, proposals have been made which use agents to set up the call . An agent is computer software designed to perform some action automatically for the user. Many agents are designed to be intelligent, in the sense of artificial intelligence and smart reasoning. For example, agents have been designed to search the WWW for web-sites based on a user's preferences. In comparison, other types of agents are more simplistic and merely react to particular environmental changes and alarms.
In US, A, 5 539 813 is disclosed a method and a system for establishing communication between two users, A and B, in the form of a meeting. Party A attempts to place a call to party B by using an agent in the form of an intermediary called a meeting broker. The meeting broker negotiates with the users in order to establish the conditions under which the proposed meeting, i.e. the telephone call, will take place. A connection between the users A and B is not established until both users A and B are in agreement with the conditions. The problem with this negotiation is that many parameters must be negotiated before a solution, which is inevitably a compromise, is found. If any of the users does not agree on the conditions the negotiation process begins again, occupying more time and network resources. How to find terminals with matching
capabilities and how to perform call screening when the parties have several terminals is not discussed.
From WO, Al, 96/08909 is previously known an intelligent network including a set of service control programs containing individual service profiles which define the individual services provided to users of the network. During call setup, a service control program (SCP) which acts as agent for the originating user is generated from the service profile for the originating user and an SCP which acts as agent for the terminating user is generated from the service profile for the terminating user. The two SCP's then enter into a dialogue with each other in order to generate call control instructions . The purpose of the invention is mainly to provide services such as e.g. toll free 1-800- numbers, call barring and debiting. The problems associated with call screening and terminal matching when the parties have several terminals is not discussed. Instead the document describes how the agent negotiates with the hardware to set up a call.
Another example of the use of agents is described in EP, Al, 825 787, showing a connection management system aimed at avoiding feature interaction conflicts, e.g. the conflict between "Call Forwarding" and "Call Waiting" . Agents are used to negotiate an appropriate connection configuration between the users. Again nothing is mentioned about how to match different terminals during call setup or how to perform call screening when the parties have several communication terminals .
The general problem with the currently known approaches, using software agents, is that they are too intelligent. They try to negotiate for the best conditions under which to set up a call. Unfortunately, all this negotiating consumes valuable network resources and time. The desired conditions may not be available as one of the agents options which forces the system to go to the user to request permission for call setup all the same or for further negotiations. Another result of this need for
negotiation is that the negotiation is best performed in a centralised location, making distributed solutions impractical.
SUMMARY OF THE INVENTION
The present invention deals with the problems of how to perform call screening and terminal matching during call setup between at least two parties each having several communication terminals .
It is very common today that communication system users have several communication terminals, hence the calling party does not know on which terminal the called party currently is available. Another problem, since parties have several terminals, is that call screening normally has to be performed for each terminal on a per call basis .
The fact that the parties have several communication terminals often with different capabilities, e.g. IP-phones, mobile phones, text-based terminals etc. also implies that the parties must find communication terminals with matching capabilities in order to be able to set up a call.
One object of the present invention is thus to provide a method of communication in which the calling party does not need to be aware of the access ports of the called party in all of the communication networks at the disposal of the called party.
Another object of the invention is to- provide a method where call screening and terminal matching is done for all communication terminals simultaneously as opposed to on a per call basis for each terminal .
The above mentioned objects are achieved by means of an agent- based distributed call setup algorithm where a distributed agent represents each party in the system. The agent has information about the respective party's communication terminals their addresses and the capabilities of said terminals . The agent also has information about the whereabouts
of the user, and is used as a secretary that assists in the call setup process .
The following scenario from the calling user's, user A, point of view describes the invention in a highly simplified form.
When the first user, user A, wants to communicate with a second user, user B, the first user sends a request to his agent, agent-A, to place a call to user B. Agent-A then presents which terminals user A is available on to agent-B, user B's agent. Agent-B then performs call screening on the incoming call request from agent-A. If said call screening results in call accept, matching terminals between agent-A and agent-B are found. From a list of matching terminals user B then chooses to either reject the call or to accept the call on one of the matching terminals in said list, if the matching results in at least one match.
From the parties' point of view the call interface is similar with the interfaces of today, however, the call setup method offers a much more powerful service where terminals are matched and screening performed. The method simplifies the call setup process when a party has more than one terminal. Furthermore, no centralised mediator is needed since this is a distributed solution.
The term call as used in this application is not limited to voice or speech transmissions . It is clear to persons working in this technical field that the present invention will also work with other types of transmission e.g. data.
The term user as used in this application may be a person an item of equipment or a computer-based application using communication services. The terms part or party are synonymous to the term user.
Although the invention has been summarised above the method and arrangement according to appended independent claims 1 and 11.
Various embodiments are further defined in dependent claims 2- 10 and 12-16.
BRIEF DESCRIPTION OF THE DRAWINGS
Figures 1A-D shows the configuration and f nctions of an agent . Figures 2A-B shows flowcharts over two scenarios from the users' side. Figure 3 shows a flowchart over the call setup algorithm. Figure 4 graphically illustrates how a call is setup in one embodiment of the invention. Figure 5 illustrates how terminals with matching capabilities are found
DESCRIPTION OF PREFERRED EMBODIMENTS
The present invention uses software agents to set up calls between users having several terminals with different capabilities. Each user of the communication system is monitored by his or her own agent, here defined to be an autonomous and long-lived software process that reacts on environmental changes and alarms . These agents are not necessarily intelligent in the sense of artificial intelligence and smart reasoning, but they are pro-active in the sense that they take action according to environmental changes and alarms . In the embodiments discussed below, there is a one-to-one relationship between agents and users, although it does not necessarily have to be so. The agents are also distributed rather than centralised as in most prior solutions.
Now referring to figures 1A-D, the configuration and function of the different parts of an agent will be described. As can be seen in figure 1A the agent, 100, consists of three parts; a list of terminals, 105, a profile of whereabouts, 110, and two screening lists, 115.
The list of terminals, 105, shown in figure IB, may, in addition to terminal numbers, 120, and addresses, 125, e.g.
phone numbers or URL's, contain the location, 130, and the capabilities, 135, of the terminals. When the terminal was last used, 140, is also stored in the list. The list of terminals for user A is called terms-A and correspondingly, terms-B for user B.
The profile of whereabouts, 110, shown in figure 1C, is a matrix defining where the user most probably is located, 150, at certain times, 145, and what terminals, 155, the user is accepting calls on. The profile of whereabouts, 110, is also used for decisions concerning call screening. For example, if the clock is between 12.00-13.00 or the user has reported in a lunch break to the agent only urgent calls on the mobile phone are accepted.
The screening lists, 115, shown in figure ID, are used together with the profile of whereabouts, 110, in call screening. The screening lists, 115, simply list the addresses, e.g. phone numbers or URL's, of persons to accept immediately in a first list, 160, and the addresses of persons to reject immediately in a second list, 165.
All three parts of the agent are updated by the user whenever there are status changes, e.g. when the user changes location, when a new communication terminal needs to be added or the screening lists needs to be updated. Each agent acts on behalf of its respective user in the call setup process as a kind of secretary.
In figure 2A a flowchart of a possible scenario from the calling user's, user A, viewpoint is shown. User A first selects user B, 200, which is the called user, in his terminal phonebook. If the call is not rejected, user B answers the call, 210. If user B instead rejects the call or doesn't answer, 220, user A may be shown a list of alternative ways of reaching user B, such as voice-mail or e-mail, 230.
In figure 2B a possible scenario from the called user's, user B's, viewpoint is described. The calling user, user A, is
presented to user B on his terminal, 240. If user B's agent rejected the call without user B's involvement, user B may be notified about that, 250. This can happen for example when user B has informed his agent that he is unavailable. If the call was not rejected user B is offered a list of matching terminals on which to accept user A's call, 260. User B then accepts the call on one of the matching terminals, 270. If user B rejects the call, 280, he can supply his agent with a list of alternative ways to reach him, e.g. voice-mail or e-mail. As can be seen the described scenarios do not affect the user interface much.
With reference to the flowchart in figure 3 , describing the call setup algorithm, a more detailed description of the invention from the calling and called users' sides, will be made. Suppose user A wants to communicate with user B, both users having several terminals with different capabilities . To overcome the problem of not knowing on what terminals user B is available on, user A first chooses user B in his phonebook. This results in user A requesting his agent to place a call to user B, 300. The call request consists of the terminals, terms- A, that user A is available on, which is presented to agent-B, 305. Agent-B then performs call screening on the incoming call request from agent-A, 310, based on user B's profile of whereabouts together with the screening lists. For example no job related calls will be admitted if the user is registered as being at home in the profile of whereabouts. If said call screening results in call accept the agents start matching terminals by comparing terms-A with the corresponding list, terms-B, present in agent-B, 340. The intersection between terms-A and terms-B which represents the terminals with matching capabilities is then presented to user B on his terminal, 342. User B then chooses to either accept or reject the call, 344. The call may be rejected because user B is unavailable, because user B has no matching terminals or because user A is not accepted. If the call is rejected agent-B informs agent-A that user B did not accept the call, 320.
Agent-A may then, depending on his configuration, ask agent-B for an alternative way to contact user B, e.g. voice-mail or e- mail, 324. When user B accepts the call agent-B completes the call setup, 346.
Another possibility when the called user rejects the call is to fallback on "Call Matching", 322, as described in the Swedish patent application SE-9802138-9 , hereby incorporated by reference, which relates to the problem of setting up a call when one of the users is unavailable. Each user is provided with a software agent, which uses a Pending Call List, PCL. Both users have their own PCL, which is a list containing all calls that have been either received or placed but not completed. When a call is placed, an entry is inserted in the caller's PCL and marked as accepting. The received call is placed in the called user's PCL. It is marked as either accepting or on-hold depending on the called user's status. When both users mark the call as accepting, the call is established.
Figure 4 shows user A, 415, and user B, 420, subscribing to services in different communication networks N1-N5. The network
Nl is the standard telephone network, the network N2 is a telex network, the network N3 is a packet switched data network, the network N4 is the mobile telephone network and the network N5 is a paging network, e.g. a radio network. In this example user A, 415, subscribes to services in network N1-N3, whereas user
B, 420, subscribes to services in all networks N1-N5. User A,
415, has a conventional telephone, 425, a fax apparatus, 430, and a terminal unit, 435, that gives access to the packet switched data network, N3. User B, 420, also has a conventional telephone, 440, a fax apparatus, 445, and a terminal unit, 450, connected to the packet switched data network, N3. In addition to that, user B, 420, also has a mobile telephone, 455, connected to the mobile network N4 and a paging receiver, 460, connected to the paging network N5.
Figure 5 illustrates how matching terminals are found. For example when user A wants to talk to user B he uses the conventional telephone, 425. Agent-A then presents to agent-B the list of terminals that user A is available on, i.e. the conventional telephone, 425, the fax, 430, and the terminal unit, 435. User B is then presented a list of matching terminals, 500, either by voice, on a GUI (Graphical User Interface) or by DTMF signalling. Said presentation of the matching terminals is done in the order of most probable terminal to least probable terminal taking in consideration the user's terminal lists, with a note on latest used terminal and the profiles of whereabouts. The connection between the users and their agents is either logical or factual. For example the users may have a special terminal unit for communicating with their respective agents .
In this particular example user B, 420, is given the option to accept user A's call on the conventional telephone, 440, the mobile, 455, the terminal unit, 450, the fax, 445, or the pager, 460. User B, 420, chooses the terminal unit, 450, and an e-mail dialog is started. The effect of this is thus that user A, 415, starts the communication on one network, i.e. the telephone network, Nl, but the final communication is established in another network, i.e. on the packet switched data network, N3.
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 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.