Documentation

Vivox Voice and Text Chat Server Side Recording API


Vivox Voice and Text Chat Server Side Recording API


Server Side Recording API

Overview

Server-side recording (SSR) allows for the recording of portions of a voice conversation to create a record that can be used as supporting evidence when reviewing potentially disruptive behavior that occurred on a call. A recording is created based on a defined number of minutes preceding the request and can either specify users in the channel or all participants.
Download OpenAPI specification:

SSR Monitor Request


Create a server side recording job that uploads the last history minutes of audio from the target channel to your cloud storage. The job runs asynchronously; its result is posted to callbackUrl.
Authorizations
basicAuth
HTTP: basicAuth
HTTP Authorization Scheme: basic

Path parameters for "SSR Monitor Request"

organizationId

string
required
Organization ID

projectId

string
required
Project ID

Request body for "SSR Monitor Request"

Media Type:
application/json

targetUri

string
required
example: sip:confctl-e-<issuer>.<username>@<domain>.vivox.com
Vivox SIP uri of the channel you wish to record

callbackUrl

string
example: https://mycallback.com
URL to send a callback to for messages about a processed job. These callbacks contain the status a given job. If a job completes successfully or fails you will get a callback with the status of the job.

callbackKey

string
example: my-key
The key passed in this field will be included in the header of the callback request under Vivox-Callback-Key

history

integer
required
example: 5
How much data to upload from n number of minutes in the past from the time of the request.

filterUris

array[string]
example: ["sip:.my-issuer.my-user.@domain.vivox.com"]
List of SIP uris to filter to. If this field is provided you will only receive audio for users provided in the array. If left empty you will receive audio for all users in the channel.

perspectiveTarget

string
example: sip:.<issuer>.<username@<domain>.vivox.com
Only uploads audio of participants who heard this player, can not be used with filterUris or global channels

metadata

object
example: {"eventType":"report","playerReportEvents":{"reportType":["yelling","toxic"],"reporterPlayerId":"reporter-123456789","reportedPlayerId":"reported-123456789","reportReason":"disturbing game","reportTimestamp":1668432971}}
Metadata for the recording. This is a key value pair that can be used to store additional information about the recording.

eventType

string
The type of event that has occurred

playerReportEvents

object
No description

reportType

array[string]
required
example: ["yelling","toxic"]
type of report

reporterPlayerId

string
required
example: reporter-123456789
Player who reported the event

reportedPlayerId

string
required
example: reported-123456789
Player who was reported in the event

reportReason

string
example: disturbing game
Description of the event from a player report

reportTimestamp

integer
example: 1668432971
Unix timestamp of the event

storageOptions

object
required
Storage options for the recording. Determines where the audio is uploaded to using the supplied credentials and bucket.

provider

string
required
example: aws
Cloud provider you are targeting. Valid options are 'aws' or 'gcp'

credentials

required
No description
One of

bucket

string
required
example: my-bucket
AWS bucket to upload data to

accessKeyId

string
required
example: secret-id
AWS secret id

secretAccessKey

string
required
example: AWS secret key
AWS secret key

HTTP response status codes for "SSR Monitor Request":

Code samples for "SSR Monitor Request":

Request example

curl -X POST \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "targetUri": "sip:confctl-e-<issuer>.<username>@<domain>.vivox.com", "callbackUrl": "https://mycallback.com", "callbackKey": "my-key", "history": 5, "filterUris": [ "sip:.my-issuer.my-user.@domain.vivox.com" ], "perspectiveTarget": "sip:.<issuer>.<username@<domain>.vivox.com", "metadata": { "eventType": "report", "playerReportEvents": { "reportType": [ "yelling", "toxic" ], "reporterPlayerId": "reporter-123456789", "reportedPlayerId": "reported-123456789", "reportReason": "disturbing game", "reportTimestamp": 1668432971 } }, "storageOptions": { "provider": "aws", "credentials": { "bucket": "my-bucket", "accessKeyId": "secret-id", "secretAccessKey": "AWS secret key" } }}' \ "https://vivox.services.api.unity.com/ssr/v2/organizations/{organizationId}/projects/{projectId}/monitor"

Response example

{ "msg": "ok", "code": 202, "id": "a776133b-8a93-4fed-a250-db6f16296703"}