10. Status Notification Service

The Status Notification Service is an updated form of the User Status Notifications (described in Chapter 9) with some significant differences as follows:

  • Status Notifications are sent in REST/JSON format
  • Status Notifications can be configured per tenant

The VidyoPortal can send Status Notifications to external entities using this interface. Every time the status of a user on the tenant changes (for example, logging in or joining and leaving a conference), the VidyoPortal sends a notification message with the various parameters for each action. The application is responsible for determining how the notification message is processed.

Status Notification Service Data

Here is an example of a Status Notification message:

{
"version" : 1 ,
"sequenceNum" : 1118325485454984,
"creationTimestamp" : 1118335848153124,
"queueTimestamp" : 1118335883785924,
"userStatusNotification" : {

"user": {
"userName" : "kram",
"displayName" : "Krishnan Ram",
"memberID" : "2727",
"userState" : "Busy",
"tenantName" : "Default",
"accessType" : "U",
"extension" : "129" },

"room": {
"roomID" : 20,
"roomName" : "Krishnan_Room",
"roomDisplayName" : "Krishnan Room",
"roomType" : "S",
"roomOwner" : "kram",
"roomExtension" : "39393",
"roomKey" : "U89HedUqbG" },

"conference": {
"uniqueCallID" : "1118335449862253",
"callState" : "IN PROGRESS",
"tenantName" : "Default",
"conferenceName" : "4788@vp3.vidyolab.com",
"conferenceType" : "C",
"conferenceID" : "123213123",
"participantId" : 3243,
"routerID" : "5821N55FG1CY549R8F9JBZWJGEYJQ49H4NQWBMYA83Q6 800VR0001",
"callCompletionCode" : "0",
"direction" : "O",
"audioState" : 1,
"videoState" : 1 },

"endpoint": {
"endpointType" : "D",
"endpointPublicIPAddress" : "172.16.41.92",
"endpointGUID" : "A0CEC81E9A03-3898779616",
"endpointId" : "9616" },

"endpointDetails" : {
"applicationName" : "VidyoConnect Desktop",
"applicationVersion" : "19.1.0.9085",
"applicationOs" : "Win 10",
"deviceModel" : "Dell Inc. - Precision 7530",
"referenceNumber" : "" },

"gateway": {
"gwid" : null,
"gwprefix" : null },

"contextAwareLinking" : {
"conferenceId" : "434675",
"externalId" : "1542355",
"externalIdType" : 1,
"connectionStatus" : 1 }

}

}

The Status Notification message format is described in the tables below.

Root Object

Key Value
version 1
sequenceNum Unique numeric sequence number of status notification message
creationTimestamp Java timestamp of creation of status notification message
queueTimestamp Java timestamp of when status notification message leaves queue

user Object

Key Value
userName Caller identifier (Login name of the caller)
For Legacy calls, this is the extension number used
displayName Display name of the caller or name of the legacy device
memberId Member (entityID of user)
userState Describes the member status based on the operation state of the endpoint in use by the member:
  • Status is Offline: Can't be reached for a conference.
  • Status is Online: Can be reached for a conference or a direct call.
  • Status is Busy: In a conference and can't can be reached for another conference or a direct call.
  • Status is BusyInOwnRoom: In a conference in own personal room and can't can be reached for another conference.
  • Status is Ringing: The endpoint associated with the member has started to ring upon receiving either a direct call or an invite event from another participant.
  • Status is RingAccepted: The endpoint associated with the member accepted the call from another participant.
  • Status is RingRejected: The endpoint associated with the member rejected the call from another participant.
  • Status is RingNoAnswer: The endpoint associated with the member has not answered within the allotted period of time.
  • Status is Alerting: The endpoint associated with the member is being alerted about the incoming call.
  • Status is AlertCancelled: The endpoint associated with the member is no longer being alerted about the incoming call.
tenantName Name of the tenant that user is associated with
accessType U - Registered User
G - Guest
L - Call to Legacy via VidyoGateway
R - Call recorded via VidyoReplay (if applicable)
extension Extension of the user joining the conference

Room Object - optional

Key Value
roomID Room ID
roomName Room name
roomDisplayName Room display name
roomType M - Private room belonging to a registered member on the VidyoPortal
P - Public room
S - Scheduled room
roomOwner The logged in username of the room owner
roomExtension Extension of room
roomKey Room key

conference Object - optional

Key Value Notes
uniqueCallID

A newly-created conference receives a new, unique call ID so the customer can track all conference participants.

For example, a conference "green" starting at 10 AM and ending at 11 AM has a different unique call ID from a conference "green" starting at 3 PM and ending at 4 PM.

N/A
callState

Current state of the call:

RINGING - The status of the side initiating the call (P2P or conference)
RING ACCEPTED - This status indicates to the initiating side that the callee has accepted the call. It will switch to "in progress" once the conference begins
RING REJECTED - This status indicates to the initiating side that the alert was not accepted
RING NO ANSWER - This status indicates to the initiating side that the call timed out
RING CANCELLED - This status indicates to the initiating side that the call was aborted from the initiating side
ALERTING - This status indicates to the callee side that there is an incoming call (P2P or conference)
ALERT CANCELLED - This status indicates to the callee side that the initiating side cancelled the call
IN PROGRESS - This status indicates to both sides that the call is in progress
COMPLETED - This status indicates to both sides that the call was completed

N/A
tenantName Name of the tenant N/A
conferenceName Name of the conference - roomName@tenantURL Same as CDR
conferenceType D - Direct Call (two party)
C - Conference Call
ID - Inter-portal Direct Call
IC - Inter-portal Conference Call
Same as CDR
conferenceId Conference ID from conferences table Internal conference ID
participantID Participant ID of the user joining a conference N/A
routerId VidyoRouter used for this call Same as CDR
callCompletionCode

This field provides one of the following call completion codes:

0 - The call completion reason is not available
1 - The user disconnected the call
2 - The call was disconnected by the admin, operator, or room owner
3 - The call was disconnected due to a network failure on the VidyoManager

Same as CDR
direction I - Inbound Call
O - Outbound Call
Same as CDR
audioState Moderator audio state of room (0 or 1) N/A
videoState Moderator video state of room (0 or 1) N/A

endpoint Object - optional

Key Value Notes
endpointType

R - VidyoRoom

D - VidyoDesktop

G - Guest

L - Call to Legacy via VidyoGateway

C - Call recorded via VidyoReplay (if applicable)

Same as CDR
endpointPublicIPAddress This field identifies the IP address of an endpoint that has joined a conference (from the perspective of the VidyoPortal). Same as CDR
endpointGUID Unique Endpoint ID Same as CDR
endpointID Endpoint ID of user N/A

endpointDetails Object - optional

Key Value Notes
applicationName

This field identifies VidyoConference usage from different endpoint types. The information is reported by endpoints when connecting to the VidyoPortal.

Usage is reported from the following endpoint types:

  • VidyoWeb
  • VidyoMobile
  • VidyoSlate
  • Lync Plug-in
  • Jabber Plug-in
  • Bott client
  • VidyoMonitoring App
  • VidyoDesktop
  • VidyoRoom
  • VidyoGW
  • VidyoReplay
  • VDI
Same as CDR
applicationVersion This field identifies the endpoint software version Same as CDR
applicationOS This field identifies the operating system on which a Vidyo client is running. All VidyoClients (and Client lib based apps) are required to provide this information if requested. The following operating systems are supported:
  • Windows XP
  • Windows7
  • Windows8
  • Mac OS
  • Linux
  • iOS
  • Android
Same as CDR
deviceModel This field identifies the endpoint device model Same as CDR
referenceNumber This is a numeric string identifier passed by the endpoint to the VidyoPortal at conference join time. This field is a placeholder for Client lib-based apps implementation. Same as CDR

gateway Object - optional

Key Value Notes
gwID

Gateway ID used for this call.

Same as CDR
gwPrefix

Service prefix used. This applies only to calls that involve a VidyoGateway or VidyoRecorder. For other calls, it is set to NULL.

Same as CDR

contextAwareLinking - optional

Key Value Notes
conferenceID

Video Visit Conference ID (Encounter CSN)

From extData in CAL
externalId

ID for the user (EMP ID, Provider or WPR ID, Patient)

From extData in CAL
externalIdType

type of user ID being passed in (1- EMP,Provider or 2-WPR,Patient)

From extData in CAL
connectionStatus

Status to set for the external user (1- Connect, 2-Disconnect)

From extData in CAL

Configuring the Status Notification Service

To enable the Status Notification Service for your Tenant Admins:

  1. Log in to the Super Admin portal using your Super Admin account.
  2. Navigate to Settings > Feature Settings > Status Notification Service.
  3. Select the Allow Tenant Admin to configure Status Notification Service checkbox.



  4. Click Save.

To enable the Status Notification Service for your Tenant:

  1. Log in to the Tenant Admin portal using your Tenant Admin account.
  2. Navigate to Settings > Feature Settings > Status Notification Service.
  3. Select the Enable Status Notification Service checkbox. New fields display.



  4. In the Server URL field, enter the URL of the notification server. This should be a web reachable address. If your notification service is HTTPS-enabled, remember to use the https:// prefix and also verify that your VidyoPortal has the appropriate Certificate Authorities uploaded.
  5. Enter the User Name and Password.
  6. Click Connection test to send a test notification to the notification server.
  7. If the connection test passes, click Save.