The present invention relates to feedback information on group communication.
The following description of background art may include insights, discoveries, understandings or disclosures or associations together with disclosures not known to the relevant art prior to the present invention but provided by the invention. Some such contributions of the invention may be specifically pointed out below, whereas other such contributions of the invention will be apparent from their context.
One special feature offered in communication systems is group communication. The term. “group”, as used herein, refers to any logical group of two or more users intended to participate in the same group communication. Examples of group communication include conferencing, multimedia conferencing, and chatting. Conferencing may use audio or video streams, for example, whereas chatting is a conference that utilizes instant messages. For a chat, participants may set up a chat room, which is a virtual place to exchange messages and corresponds to a session-based instant messaging conference. Chat rooms may be public, i.e. open to all or they may be private, i.e. the participation is restricted to given users. The basic principle of a chat is that a participant in the chat may send a message (an instant message) to one or more recipients so that they receive the message substantially simultaneously and each recipient may respond to the message. Typically participants are subscribers of different operators, and thus different operators are involved in chatting, and thereby each operator is providing required resources, such as servers. For example, operator B's server may host a chat room and a user who sends an instant message to other participants of the chat room may be operator A's subscriber, and therefore the message passes through one or more of operator A's servers, and possibly one or more servers of one or more other operators prior to arriving at operator B's server, which then delivers the message to other participants.
One of the problems associated with the above chat arrangement is that there is no mechanism to provide feedback information to operator A or more precisely, to operator A's server, on the message delivery, for example a number of recipients to whom the message was successfully delivered.
An object of the present invention is thus to provide a method and an apparatus for implementing the method so as to overcome the above problem. The object of the invention is achieved by a method, a signalling message, an apparatus and a computer program product which are characterized by what is stated in the independent claims. Preferred embodiments of the invention are disclosed in the dependent claims.
The invention is based on obtaining, on application level, feedback information relating to the delivery of a group message. The obtained feedback information may be sent in an application level protocol message to a server in a network of an operator of a sender of the group message. The feedback information may be obtained and sent in response to a request received from the server.
An advantage of the invention is that it provides an easy-to-implement application level solution to obtaining feedback information which enables differentiated charging, for example.
In the following, embodiments will be described in greater detail with reference to the accompanying drawings, in which
FIGS. 9 to 11 illustrate different messages according to embodiments of the invention.
The following embodiments are exemplary. Although the specification may refer to “an”, “one” or “some” embodiment(s) in several locations, this does not necessarily mean that each such reference is to the same embodiment(s) or that the feature only applies to a single embodiment. Single features of different embodiments may also be combined to provide other embodiments.
The present invention is applicable to any user terminal, server, corresponding component, and/or to any communication system or any combination of different communication systems that support group communication. The communication system may be a fixed communication system or a wireless communication system or a communication system utilizing both fixed networks and wireless networks. The protocols used, the specifications of communication systems, servers and user terminals, especially in wireless communication, develop rapidly. Such development may require extra changes to an embodiment. Therefore, all words and expressions should be interpreted broadly and they are intended to illustrate, not to restrict, the embodiment.
In the following, the present invention will be described using, as an example of group communication, a chat using instant messages and, as an example of a system architecture whereto the present invention may be applied, an architecture based on SIP (session initiation protocol) for signaling and session establishment, i.e. providing a tool to build a multimedia architecture, and MSRP (message session relay protocol) for group communication without restricting the invention to such a group communication and to such an architecture, however. SIP and MSRP are defined by the Internet Engineering Task Force (IETF). SIP is an application-layer control (signalling) protocol for creating, modifying, and terminating sessions with one or more participants. MSRP is an application layer protocol for carrying a series of instant messages between two points, as one-to-one or one-to-many communication, after a session has been established. In other words, SIP and MSRP are not vertically integrated into a communication system. IETF specifications and Internet Drafts can be found at http://www.ietf.org.
The general architecture of a communication system providing a group communication service utilizing SIP and MSRP is illustrated in
The communication system 1-1 in
In the following it is assumed, without restricting the invention thereto, that an operator A's server, a server A 1-3, is an instant messaging server via which users using subscriptions of the operator A, i.e. user terminals 1-2, 1-2′, gain access to a chat room server, a server B 1-3′, providing chat room services, such as delivery of an instant message to other participants of the chat room, called recipients below. Preferably, as illustrated in the example, the chat room server, the server B, which is an operator B's server, provides access to chat room services to users using subscriptions of the operator B, i.e. the server B 1-3′ acts also as an instant messaging server of the operator B.
It should be appreciated that a chat room in the server B may provide access to chat room services for any number of different operators or more precisely, for users using their subscriptions. In other words, the operator A's network 1-4, the server A 1-3 and the user terminals-1-2, 1-2′ represent here one or more corresponding operator networks, intermediate servers and user terminals. It should also be appreciated that access to different chat rooms may be provided by different chat servers of different operators. In other words, the operator B's network 1-4′, and the server B 1-3′ represent here one or more corresponding operator networks and servers providing group communication.
The functionality of the service provider unit 21 is described in more detail below. It should be appreciated that the apparatus may comprise other units used in or for accessing the chat server or a corresponding group communication server or providing instant messaging or other group communication. However, they are irrelevant to the actual invention and, therefore, they need not to be discussed in more detail here.
The apparatus may be any node or a host which is able to communicate with a group communication server of the system, via one or more access networks and core networks and a routing network. Different functionalities of such an apparatus are shown below in FIGS. 4 to 7. The apparatus may be an instant messaging server, such as a relay server or back-to-back-user-agent which is a SIP based logical entity that can receive and process INVITE messages as a SIP User Agent Server or any other intermediate server. The apparatus may also be a user terminal which is a piece of equipment or a device that associates or is arranged to associate, the user terminal and its user with a subscription and allows a user to interact with a communications system. The user terminal presents information to the user and allows the user to input information. In other words, the user terminal may be any terminal capable of receiving information from and/or transmitting information to the network, connectable to the network wirelessly or via a fixed connection. Examples of the user terminal include a personal computer, a game console, a laptop (a notebook), a personal digital assistant, a mobile station (mobile phone), and a line telephone.
Apparatuses, such as intermediate servers or corresponding intermediate server components, user terminals and/or other corresponding devices or apparatuses implementing the functionality of a corresponding apparatus described in an embodiment comprise not only prior art means, but also means for forming, sending and/or receiving messages requesting feedback information or containing feedback information in a manner described below. In addition, they may comprise means for adding a request of feedback information to a group message or means for removing feedback information from a message in a manner described below. More precisely, they comprise means for implementing the functionality of a corresponding apparatus described in an embodiment and they may comprise separate means for each separate function or means may be configured to perform two or more functions. Present apparatuses comprise processors and memory that can be utilized in the functions according to an embodiment. For example, the service provider unit 21 may be a software application or a module or a unit configured as an arithmetic operation or as a program, executed by an operation processor. All modifications and configurations required for implementing the functionality of an embodiment may be performed as routines, which may be implemented as added or updated software routines, application circuits (ASIC) and/or programmable circuits. Software routines, also called program products, including applets and macros, can be stored in any apparatus-readable data storage medium and they include program instructions to perform particular tasks. Software routines may be downloaded into an apparatus. The apparatus, such as an intermediate server or a corresponding intermediate server component or a user terminal may be configured as a computer including at least a memory for providing storage area used for arithmetic operation and an operation processor for executing the arithmetic operation. An example of the operation processor includes a central processing unit. The memory may be removable memory detachably connected to the apparatus.
The functionality of the service provider unit 31 is described in more detail below in
Apparatuses, such as group servers or corresponding group server components, and/or other corresponding devices or apparatuses implementing the functionality of a corresponding apparatus described in an embodiment comprise not only prior art means, but also means for forming, sending and/or receiving messages requesting feedback information or containing feedback information in a manner described below. In addition, they may comprise means for extracting a request for feedback information from a group message or means for collecting feedback information in a manner described below. More precisely, they comprise means for implementing the functionality of a corresponding apparatus described in an embodiment and they may comprise separate means for each separate function or means may be configured to perform two or more functions. Present apparatuses comprise processors and memory that can be utilized in the functions according to an embodiment. For example, the service provider unit 31 may be a software application or a module or a unit configured as arithmetic operation or as a program, executed by an operation processor. All modifications and configurations required for implementing the functionality of an embodiment may be performed as routines, which may be implemented as added or updated software routines, application circuits (ASIC) and/or programmable circuits. Software routines, also called program products, including applets and macros, can be stored in any apparatus-readable data storage medium and they include program instructions to perform particular tasks. Software routines may be downloaded into an apparatus. The apparatus, such as a group server or a corresponding group server component may be configured as a computer including at least a memory for providing storage area used for arithmetic operation and an operation processor for executing the arithmetic operation. An example of the operation processor includes a central processing unit. The memory may be removable memory detachably connected to the apparatus.
In the following, different embodiments illustrating apparatus and/or server operations and how they process application level signalling messages are described using an instant message as a group message, a chat with a chat room as a group communication, the operator A's server, called the server A, as a sender's instant messaging server, and the operator B's server, called the server B, as a server hosting the chat room without restricting the invention thereto. It should also be appreciated that the server operations may be implemented in one or more physical or logical entities. In the following, the delivery of an instant message to other participants is not disclosed in detail for the sake of clarity. The delivery includes sending the instant message to recipients via their instant message servers, and receiving acknowledgements via the corresponding instant message servers, including the server A. Examples of different messages that can be used in FIGS. 4 to 6 are disclosed in more detail below in FIGS. 9 to 11.
The user of the user terminal UT1 sends an instant message 4-1 to the chat room. The instant message 4-1 may be an MSRP SEND request, for example. In response to receiving the instant message 4-1, the server A adds, in point 4-2, to the message a request for feedback information (FI_r), and forwards the instant message with the request to the server B in message 4-1′. The requested feedback information may be the number of recipients the user content (group message) was successfully sent to, and/or the number of recipients the user content (group message) was not delivered due to a failure, and/or the number of recipients on a delivery list, and/or the number and/or types of recipient groups, for example. Further; the request may include instructions how to divide recipients to different subgroups, by giving one or more of the characteristics, for example. It should be appreciated that other feedback information which is not disclosed herein, may be requested. Depending on implementation, the server A may be configured to request each time the same feedback information or the requested feedback information may depend, at least partly, on the subscription associated with the user terminal UT1 or on the content type of the message.
When the server B receives the instant message, the server B extracts, in point 4-3, the feedback information request from the message and, after that, delivers instant messages 4-1 to other participants who have joined the chat room. In response to the feedback information request in the message 4-1′, the server B obtains, in point 4-4, the requested feedback information. Depending on the requested feedback information, the obtaining may include waiting for acknowledgements from recipients, the acknowledgements indicating success or failure of the delivery, for example, and collecting feedback information on the basis of the acknowledgements. The acknowledgement may be a 200 OK or an MSRP REPORT request. For the sake of clarity, these acknowledgements are not disclosed in
When the server B has obtained the requested feedback information, the server B sends the feedback information (FI) in message 4-5 towards the user terminal UT1. Thus, message 4-5 passes through the server A, which extracts, in point 4-6, the feedback information from the message and stores the feedback information at least temporarily for further processing and/or for sending to another network node, such as a node collecting charging information, for example. The server A then forwards the message without the feedback information to the user terminal UT1 in message 4-5′. The message 4-5 and the message 4-5′ may be a response, such as 200 OK, another request, such as MSRP REPORT request or any other acknowledgement. In another embodiment of the invention, the server A may send message 4-5′ or a corresponding additional acknowledgement message in response to receiving message 4-1.
An advantage of the server A explicitly requesting specific feedback information is that the server A can control when and what kind of feedback information it will obtain. This facilitates versatile charging of subscriptions, either between different subscriptions of an operator and/or between different operators, for example.
An advantage of the feedback information not being sent to the user terminal is that sending of the feedback information, especially when very detailed feedback information is requested, remains interdomain, i.e. from a server to another server, and therefore does not create extra load to the air interface of the user terminal.
In the embodiment illustrated in
The instant message 5-2 passes through the server A to the server B which delivers instant messages 5-2 to other participants who have joined the chat room. Depending on the implementation, the server B may or may not extract the feedback information request from the instant message before it is delivered. In response to the feedback information request in the message 5-2, the server B obtains, in point 5-3, the requested feedback information. As stated above in
In response to receiving message 5-4 containing feedback information, the server A copies the feedback information, e.g. stores or forwards it to another node, in point 5-5, and forwards the message to the user terminal UT1, which then may display, in point 5-6, the feedback information to the user of the user terminal UT1, and/or store it at least temporarily.
In the embodiment illustrated in
Referring to
In response to receiving message 6-3, the server A stores, in point 6-4, the feedback information or forwards it to another node. The server A may be configured to discard, in point 6-4, the feedback information, if the server A does not need it, instead of storing it.
In another embodiment, the server A may forward message 6-3 to the user terminal UT1.
The above example illustrated in
A further embodiment in which the example illustrated in
In response to receiving a group message (step 701), the server component checks, in step 702, whether or not the message contains a feedback information request requesting for all required feedback information (FI). The required feedback information may be subscriber-specific information, and/or operator-specific information, and/or session-specific information, i.e. it may depend on the chat room in question. It is also possible that no feedback information is required. Examples of different feedback information are given above in
If any of the required feedback information is not requested, a request for the feedback information is added, in step 703, to the group message, which is then sent, in step 704, towards the chat room. After a while, an acknowledgement with the requested feedback information is received in step 705. Examples of different acknowledgments are given above in
If all required feedback information is already requested for in the received group message (step 702), the group message is forwarded, in step 709, to the server hosting the group communication, such as a chat room. After a while, an acknowledgement with the requested feedback information is received in step 710. Examples of different acknowledgments are given above in
In response to receiving the group message (step 801), the server component checks, in step 802, whether or not the message contains a feedback information request (FI_r). Examples of different feedback information are given above in
If the group message contains a feedback information request (step 802), the server component extracts, in step 803, the request from the group message and then delivers, in step 804, the group message to recipients. The server component then obtains, in step 805, the requested feedback information. The obtaining step may include receiving acknowledgements indicating successful delivery or failed delivery from recipients and combining them or information thereon. When the feedback information is obtained, the server component forms, in step 806, an acknowledgement containing the requested feedback information (FI), and sends, in step 807, the acknowledgement towards the sender of the group message. Examples of acknowledgements are given above with
If the group message does not contain a feedback information request (step 802), the server components delivers, in step 808, the group message to recipients, and sends, in step 809, an acknowledgement towards the sender of the group message. Examples of acknowledgements are given above in
The steps/points, signaling messages and related functions described above in FIGS. 4 to 8 are in no absolute chronological order, and some of the steps/points may be performed simultaneously or in an order differing from the given one. Other functions can also be executed between the steps/points or within the steps/points and other signaling messages sent between the illustrated messages, such as the servers acknowledging a received message. Some of the steps/points or part of the steps/points can also be left out or replaced with a corresponding step/point or part of the step/point. The server operations illustrate a procedure that may be implemented in one or more physical or logical entities. The signaling messages are only exemplary and may even comprise several separate messages for transmitting the same information. For example, the request for feedback information on a group message may be sent in another message than the group message. In addition, the messages may also contain other information. Furthermore, the messages may pass through one or more other servers in the operator A's network, and/or in the operator B's network, and/or in another operator's network.
FIGS. 9 to 11 disclose messages according to the invention,
In the embodiment illustrated in
In the embodiment illustrated in
In the embodiment illustrated in
As stated above, instead of the MSRP REPORT request another acknowledging message, such as 200 OK, may be used to contain the feedback information disclosed in
It should be appreciated that the above signaling messages are only examples. For example, an instant messages delivery notification, defined currently by the IETF, may be enhanced to convey the above illustrated feedback information. The enhanced instant messages delivery notification document may be included in an MSRP REPORT request or to 200 OK.
The group server or an intermediate server, may act as an aggregator and aggregate acknowledgements, such as instant messages delivery notification documents, into a single acknowledgement to be sent as aggregated feedback information in a message. However, it is possible that the feedback information may be sent piece by piece, i.e. each acknowledgment received from a recipient is sent as separate feedback information in a message or the feedback information may comprise one or more messages containing aggregated feedback information and/or one or more messages containing separate feedback information.
Although not mentioned above in detail, the feedback information facilitates charging. With the feedback information, for example a charge of an instant message may depend on the subgroups whose members received the message, on the countries where it was received, and/or on the number of receivers. Further, it enables operators providing the required resources to share the charges. This is especially useful when several cascaded group communication servers are used in the delivery of the message.
It will be obvious to a person skilled in the art that, as technology advances, the inventive concept can be implemented in various ways. The invention and its embodiments are not limited to the examples described above but may vary within the scope of the claims.
Number | Date | Country | Kind |
---|---|---|---|
20065651 | Oct 2006 | FI | national |