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:
|
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) |
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
|
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:
|
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:
|
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:
- Log in to the Super Admin portal using your Super Admin account.
- Navigate to Settings > Feature Settings > Status Notification Service.
- Select the Allow Tenant Admin to configure Status Notification Service checkbox.
- Click Save.
To enable the Status Notification Service for your Tenant:
- Log in to the Tenant Admin portal using your Tenant Admin account.
- Navigate to Settings > Feature Settings > Status Notification Service.
- Select the Enable Status Notification Service checkbox. New fields display.
- 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.
- Enter the User Name and Password.
- Click Connection test to send a test notification to the notification server.
- If the connection test passes, click Save.