QSS invites service

Service name

  • Service name: SippoAS.qss.invites-rooms

  • Service hierarchy: sippoas/qss/lib/services/invites

Main feature covered

This service is in charge of notifying to a user when other one wants to invite him to a conference room by creating and updating invitations (invite/inviteRequest methods):

  • The invite method is sent from an user to another peer to invite him to join the user’s conference room. This is the method commonly used to start one to one calls.

  • The inviteRequest method is sent to another peer in order to ask for an invite to join receivers room. This method is used for the personal URLs, to include a anonymous user into a existing meeting and to setup incoming calls from PSTN.

The invite services also leverages the push service to send push notifications to mobile devices.

Service Configuration

The configuration of this service is placed in the config.json:

// skipped code
"invites": {
  "basic": {
    "removeAfter": 10000,
    "resolveGroups": false,
    "resolvePush": false,
    "legacyUserGroupResolution": true,
    "wac": {
      "address": "http://wac:8000",
      "username": "admin@quobis",
      "password": "<YOUR_PASSWORD_HERE>"
    }
  },
  "parallelSip": false,
  "onlyOneDeviceWithInvitations": false
}
// skipped code

Where the meaning of each field is:

  • resolvePush: when set to true, invites will try to send invitation by push to the users who are logged in a mobile phone. Will be ignored if legacyUserGroupResolution is set to false

  • wac: sippo-server API URL and credentials to be able to interact with the Sippo AS Push service.

    • address: sippo-server URL

    • username: administrator user username

    • password: administrator user password

  • removeAfter: wait X milliseconds before removing a candidate from the invite when that candidate (a registry object) unregisters or loses connection with qss. His value as default should be 0.

  • resolveGroups: when is true, invites service will be capable of retrieving the participants in a group to invite them to a conference. It’s essential to perform the ‘invite a group’ feature. Will be ignored if legacyUserGroupResolution is set to false

  • legacyUserGroupResolution: when is true, invites service will retrieve candidate information as needed from the sippo-server, when false it will use the Reachability service in the sippo-server to get all the candidate information that the sippo-server could provide just in one request, significantly improving performance. For backwards compatibility if not specified it is set to true.

  • parallelSip: This flag enables the parallel sip behavior. When it is activated, an invite is sent to the PSTN net and it come back before inviting to the room to the person who was invited. When this flag is false, invites service works as normally.

  • onlyOneDeviceWithInvitations: when is true avoids that a user can establish two calls in differents devices. When the user is on two devices (mobile and desktop for example) and has an ringing invite in each device, when the user accepts a invite, the other one will be stopped by this service.

Log messages

Level

Message

Debug

invite peerId(${peer.id}), to(${to}), inviteId(${inviteId}), context(${JSON.stringify(context)})

Debug

Trying to get candidates for ${to}

Debug

Trying to resolve group ${to}

Debug

got candidates ${candidates}

Debug

Notifying that user ${userId} joins to the room ${roomId}

Debug

INVITE_COMPLETED will be notified

Debug

Notifying that invite ${inviteId} for room ${roomId} was accepted by ${whoAccepted}

Debug

Notifying user ${userId} leaves ${roomId}

Debug

Cleaning data for room: ${roomIdToClean}

Debug

accept peerId(${peer.id}), from(${from}), inviteId(${inviteId})

Debug

decline peerId(${peer.id}), from(${from}), inviteId(${inviteId}), errorCode(${errorCode})

Debug

"send invitation cancel", invite, "to", candidate

Debug

"send invitation", invite, "to", candidate

Debug

"will reject pending invitations of", item, "except", peer

Debug

"resuming invite", type, peer, message

Debug

stopInvite with the inviteId ${inviteId} for the callee ${callee}

Debug

"will update invite candidates with registry", invite, registry

Debug

"onPeerDisconnected will remove as candidate from", invites

Debug

No candidates found for resource: ${to}

Debug

Resource '${to}' is a ${candidatesType} with candidates: ${candidates}

Troubleshooting & caveats

If the service is not working as expected, a few steps to follow:

  • Verify that the message broker is up and running.

  • Verify that the service is connected to the message broker.

  • Verify that the URL of the sippo-server services API is correct.