1. Field of the Invention
The invention relates to a method for controlling group communication and a group communication server in a communication network.
2. Description of the Related Art
A prior art group communication server is disclosed, for example, in document US2002/0150091. In detail, in this document the group communication server is a call processing server being responsible for a control plane management of group communications.
The present invention relates in particular to an environment that uses SIP (Session Initiation Protocol) to establish sessions between users.
Currently, when a SIP session to a number of invitees is initiated, the SIP conference server sends the invitations (INVITE messages) to all group members. In case that some intended user was not registered to the SIP core network during the original session initiation, the participant will not receive an invitation. In case that the user registers to the SIP core at a later stage, but though during the conference existence, and even though she/he could potentially wish to join the conference, she/he is not informed of the attempt to bring her/him into the conference. Moreover, the SIP core of the non-registered terminal returns a final response, which finalizes the SIP session establishment procedure towards that particular user.
Currently there does not exist a mechanism to late join to a particular session that was invited earlier. Potentially, the user that registers to SIP core late, when a conference still exists, which is also intended for him/her, the subscriber could get knowledge of the existing conference by e.g. subscribing to conference state package.
That is, at present it is not possible for late registered users to be aware of a conference session and thus join the a conference, for which already invitations were issued.
In particular, this problem occurs in case potential participants of a conference were not registered to the network (e.g., are located in an area with no connectivity, or have their SIP device switched of).
Namely, in detail, a SIP User Agent creates a conference, and provides instructions to the conference server to dial-out a number of potential participants. The conference server sends an INVITE request to each of the potential participants, as described above. Out of those potential participants, some accept the invitation, and become participants of the conference. Others either reject the invitation (perhaps are busy), don't answer the call, are located in an area where there is no connectivity, or have the SIP device switched off.
Those potential participants that were logged into the network, but didn't accept/answer the call, will receive an indication of a missed call in their terminal's log, and thus, can join the conference at a later stage, if they wish. But the problem is that those potential participants that were not registered to the network (due to lack of coverage/connectivity, flat battery or phone switched off) will never be informed of the conference invitation. In case any of these potential participants become available (due to coverage/connectivity or phone switched on), they are not aware of the existence of the conference, and, thus, are not able to join the conference, if still is taking place.
The invitations for a session/conference may also include a unique session identifier (e.g., URI (Uniform Resource Identifier), SIP Call ID or similar) which is needed to join the session. The session identifier may be assigned per session basis (temporary identifiers). In this case, late registered users cannot know the session identifier which makes joining the session impossible even if they were aware of the session's existence.
Hence, it is an object of the present invention to solve the problem mentioned above and enable users to join a group communication session which started when the user was not registered, not available, or the like.
This object is solved by a method for controlling group communication in a communication network. This method comprises the steps of sending, to a plurality of users, requests to join a group communication session, detecting that at least one of the users was not accepting the request to join the group communication, and subscribing to a status of the at least one of the users not joining the group communication session.
Alternatively, this object is also solved by a group communication server in a communication network, comprising means for sending, to a plurality of users, requests to join a group communication session, means for detecting that at least one of the users was not accepting the request to join the group communication, and means for subscribing to a status of the at least one of the users not joining the group communication session.
The status described above may be a registration status or a presence status, for example.
That is, after an unsuccessful invitation to a user to join a group communication session, a subscription is performed to the status (either the registration or the presence information) of this particular user. Hence, after registering of this user, or after the publication of the user's presence status, the sender (i.e., the group communication server) is notified of the registration or presence availability status and can send a further invitation to a group communication session.
Hence, in this way a user which registers after the invitation to a group communication session has already been issued (or was not available, is busy or does not answer etc.) can get knowledge of the existence of the group communication session, and can take part in the group communication session.
Thus, the group communication server (the conference server) may act as a watcher of the registration or presence information of a user, when the user is not connected to the network or not available.
Further advantageous developments are set out in the dependent claims.
The invention is described by referring to the enclosed drawings, in which:
In the following, preferred embodiments of the present invention are described by referring to the attached drawings.
According to the first embodiment of the present invention, a mechanism for SIP core/network system is proposed, by which it is possible to send invitations to an existing group session for a user (participant) who performs registration to a SIP server at a later stage, i.e., when the conference session already exists and the user was not yet registered to SIP when the initiation procedure was performed.
Technically this is implemented such that a conference server (as an example for a group communication server) controls the existing and originally invited session, subscribing the registration information state of each of the invited users for which the conference server got a response indicating that he/she was not registered to the SIP core. In this case, once the late user registers to the SIP core, the controlling SIP server would get knowledge on that, and consequently would be able to send a new INVITE request also to this late registered user.
In the following, this procedure is described in more detail by referring to
It is noted that the SIP core as used throughout the description is a network entity controlling SIP network of a participant (user) and typically comprises e.g. session control, routing, registrar and charging means/elements.
In this example, the following situation is assumed:
User A instructs the conference server 1 to initiate a group session to users B, C and D. Users B and D are registered to the SIP core at the time the conference server sends the invitation, and consequently, they are able to receive INVITE messages. Furthermore, they are able to join the session (conference).
User C is not registered to SIP core at the time the conference server sends the invitations to the users. This is illustrated in
This is illustrated in the message flow diagram shown in
As shown, the conference server 1 sends INVITE messages M1, M2, and M3 to the users (the potential participants) B, C and D. It is noted that in
As mentioned above, users B and D are registered, so 200 OK messages M4 and M5 are sent back to the conference server (assuming that the users B and D would like to participate in the conference). Since user C is not registered, the SIP core sends a 480 Temporarily Unavailable response M6 back to the conference server.
Once the conference server receives the response indicating a non-registered status (i.e., the 480 Temporarily Unavailable response), it subscribes to user's C registration status by sending a SUBSCRIBE request for the “reg” event (registration event) to the user's C SIP core of in message M7.
If the session ends before the user C registers, the conference server unsubscribes the reg event by sending a SUBSCRIBE request with the Expires header field set to zero.
In the following, the situation when the user C registers and the conference has not ended yet is described by referring to
Once the conference server receives the notification, it invites the user C to the session by sending a further INVITE message M13 to the SIP core of user C. This is forwarded to the user C in message M14. In this example it is assumed that the user C would like to participate in the conference, so a 200 OK message M15 is sent to the SIP core, and is forwarded in message M16 to the conference server. Thus, the user C is informed of the existence (activity) of the conference and may join the conference.
The INVITE messages may also include a unique session identifier (e.g., URI, SIP Call ID or similar) which is needed to join the session (conference). The session identifier may be assigned per session basis (temporary identifiers). As described above, user C receives a further INVITE message M13, which includes the session identifier in this case. Hence, he gets the session identifier necessary to join the conference and can join it.
In
The procedure is carried out each time a response to an INVITE message is received. In step S1, it is checked whether a 480 Temporarily Unavailable response has been received. If this is not the case, no further detection is necessary, and the procedure ends.
If the user is not registered, so that a 480 Temporarily Unavailable response was received, the procedure proceeds to step S2, in which the subscription to the user's reg event status is performed (i.e., the message M7 shown in
In a second embodiment described in the following by referring to the message flow diagram shown in
According to
Once the conference server receives the response indicating a non successful result (i.e., any 400-class, 500-class or 600-class response) or the user does not answer and the INVITE request times out, it subscribes to user's C presence information status by sending a SUBSCRIBE request for the presence event to user's C SIP core in message M27. User's SIP core will further route the message M28 to user's C presence server. This is acknowledged by the user's C presence server by sending a 200 OK message M29 to the SIP core of C, which forwards this 200 OK message to the conference server in message M30.
User's C presence server will send a NOTIFY request containing presence information in message M31, which is received by the conference server (message M32). This is acknowledged by the conference server by sending an 200 OK message via the SIP core of C to user's C presence server (messages M33 and M34). At this point in time, the conference server is able to determine if there are alternative ways to reach the user or alternative contacts (e.g., a secretary or a member of the family) for user C, in which case the conference server may immediately send a new INVITE to this alternative contact.
If the session ends before the user C changes its presence information to available, the conference server unsubscribes the presence information event by sending a SUBSCRIBE request with the Expires header field set to zero.
It must be noted that if the presence information of the user reveals that he is registered to the SIP core, but not available (e.g., he is away from his SIP device), then the conference server may send periodic INVITE requests to such user, in case the alerting tone at user's C terminal brings the user's attention, and he may join the conference.
In the following, the situation when the user C changes its presence information and the conference has not ended yet is described by referring to
According to
The procedure is carried out each time a reaction to an INVITE message is received. In step S11, it is checked whether a 400, 500, or 600-class response has been received. If this is not the case, no further detection is necessary, and the procedure ends.
However, if a 400-, 500-, or 600-class response is received, then the procedure proceeds to step S12, in which the conference server subscribes to the user's presence information. Alternatively, the conference server may subscribe to the user's presence information only when certain predefined responses are received.
It is noted that it is not necessary to trigger the subscription on any 400-, 500- or 600-class response. That is, the conference server may comprise a predefined set (or list) of responses which trigger the subscription. This set of responses may be a subset of the 400-, 500- and 600-class responses, and/or may contain also other suitable responses.
Furthermore, as described above, instead of detecting the 400-, 500- or 600-class response, alternatively also a timer can be used. That is, if the timer times out after sending the INVITE request, then the conference server may subscribe to the user's presence information.
As described above, when the conference server does not receive a positive answer (200 OK) from any of the potential participants, the conference server subscribes to the presence state of such potential participant. The presence subscription will inform user's availability to the conference server when the availability information changes. According to the first or the second embodiment, the conference server can send a periodic invitation (e.g., every 15 minutes), if the user is online. If the user is offline, the conference server can send an invitation when the user becomes online and publishes his online status.
The conference server sends an INVITE request to each of the potential participants. If a potential participant accepts the session (e.g., answers with a 200 OK response), then the conference server inserts it as a participant in the conference, and no further actions are needed.
If a potential participant does not become a participant (rejects the session, does not answer, is not registered, etc.), the conference server may subscribe to the potential participant presence information by sending a SUBSCRIBE request with the Event header field set to presence.
With respect to first embodiment, the following is noted with respect to de-registering of the user. In detail, when the user de-registers, his S-CSCF (Serving Call Session Control Function) allocation is released. Once the terminating request (here SUBSCRIBE) is received by the IMS and the user is unregistered, the IMS may allocate a new S-CSCF to perform user's services. IMS should allocate the S-CSCF if the user has services that need to be performed for unregistered user. Once the user registers, the IMS again allocates a new S-CSCF to perform the services for registered user. This means the S-CSCF which received the SUBSCRIBE for reg event may be different from the one that receives the user registration indication, thus the IMS is not able to send NOTIFY for reg event back to the reg event subscriber.
This problem may be solved in the following way. Reg event subscriptions will be routed to dedicated Application Server (AS). This can be achieved by using iFC (initial Filter Criteria) in the S-CSCF. Also user registrations and de-registrations are routed to the same AS. Also this can be achieved by using iFC (this is so called 3rd party registration, IMS registers to the AS on behalf of the user). This means the AS that receives the reg event subscriptions is aware of the user registration status, and thus is able to send NOTIFY for reg event.
This is shown in
The application server sends a NOTIFY message to the conference server in messages M63-M64, indicating user C's registration status (here registered), which are confirmed by 200 OK messages M65 and M66. After this, the conference server sends an INVITE message M67 towards the user C (via S-CSCF 2 and message M68). In case user C accepts, a 200 OK message is sent back to the conference server (this message is not shown in the figure).
In case of OMA (Open Mobile Alliance) PoC (Push-to-talk over Cellular) service and 3GPP IMS, the dedicated AS mentioned above is user's participating PoC server. The reg event subscription is sent from controlling PoC server. These two PoC servers can be located in different domains, since there is NNI (Network-to-Network Interface) in place between the domains, and both domains are trusted, so the subscribed domain can trust to send the NOTIFY to the subscribing domain.
The invention allows the maximum participation of potential participants in a conference. For the operator, it creates the maximum revenue, since it maximizes the participation of users in conferences.
As mentioned above, the invention can be used in PoC environments, because a PoC group is just a conference. It can also be used in 3GPP IMS or any other SIP network that provides conference services based on SIP.
The invention is not limited to the embodiments described above, and various modifications are possible.
Number | Date | Country | Kind |
---|---|---|---|
04026824.5 | Nov 2004 | EP | regional |