User Groups

Introduction

In addition to the classification of users into domains, Quobis WAC allows the creation of group of users that have something in common or share some characteristics. This is a quite common practice for example in business environments, where users are classified into departments or teams, but it also applies to a lot of other use cases where we need to combine users into different sets. Quobis WAC provides a number of functionalities to ease the management of these groups and to automatically include group calling and group chatting features.

In Quobis WAC, an “user group” is a set of system users (also referred to as “users group participants”) that has the following characteristics:

  • It is given a name (a string)

  • It has an associated chat group

  • It is a “callable” entity

  • It has one or more associated phonebooks

The associated chat group, which has the same name as its associated user group, is automatically synchronized with the group participants. That means that if the owner adds/changes/removes an user from the userGroup, the system will automatically add/change/remove that user from the ChatGroup. On the other hand, when a user is added to a user group by someone else, the system will include that chat group in the list of groups that this user belongs to.

../_images/usergroups.png

The fact that groups are “callable” means that a audio or video call be placed to them. In order to do it, the ID that needs to be called when making the call is the user group ID. When that happens, the system will start one call to each of the userGroup participants, simultaneously. The ringing policy works as follows:

  • If an user answers the call, it will be connected to the caller party and the rest of the calls will stop ringing.

  • If an user rejects the call, that action won’t be notified to the caller party and the call will keep ringing for the other participants.

  • If no one accepts the call, the caller will be notified that the call has not been accepted

../_images/usergroups_ringing.png

Please note that this behaviour means that the callee does not make a call to each group participant, it’s the signaling server which makes that on its behalf. That also means that the caller does not know the actual users that he/she is calling when dialing into the user group. This call is registered in the call details records as a regular call, being the callee the user group ID.

Other special characteristics of the user groups are:

  • User groups have a owner, which is a participant who can add, change or remove users from the usersGroup that he/she has created.

  • A user group can only have one owner and it cannot be changed after it’s created.

  • A participant can be owner of one of more user groups.

  • A participant can belong to one of more user groups.

  • There is no limit in the number of users in a UserGroup

  • The associated chat group is not a standard one so no actions can be done via the REST API with these chats. The system will remove it automatically only after the user group is removed. Attempting to interact with these type of chat groups via the REST API will thrown an error.

Configuration

The service needs to be enabled in the wac.ini file in order to work, with the following configuration (it is activated by default after a standard deployment). There is no specific configuration rather than activating the service as shown below.

[usersgroup]
backend[] = UsersGroup

[backend.UsersGroup]
module = UsersGroup

This service can be reached via the REST API where a number of methods are available to create a group, get a list of groups and other CRUD operations.

Log messages

These are the log messages associated with the user groups management:

  • error: Specified participant does not exist: an error occurred when trying to add a participant that doesn’t exist yet

  • error: User ${user.id} is not the owner of the group: an error occurred when a user tries to manage a group in which he is not the owner.