Skip to content

OVI API Reference

General Information

Documentation for CONNECT API/PAPI v3 provisioning web service.

The base path for the API is: api/provisioning

The path api/provisioning version 3.0 has three endpoints /save, /bulksave, /delete

All requests need included header Authorization: Bearer <acquired token> and x-api-version: 3.0

How to aquire Bearer token

Request

To aquire Bearer token we need to POST correct authentication information to auth/gettoken

in the header following

following object needs to be included in body of the POST

{
  "TenantId": "<uuid>",
  "ClientSecret": "<secret...>"
}

Response

a string with the token to be used in the header of all API requests.

"magic_long_token"

API Endpoints

POST [base]/save

Will provision/insert a new gateway if input.GatewayId is null. The GatewayId that the gateway has will be returned, so that it is possible to update this gateway next time instead of creating a duplicate.

If GatewayId is sent, the existing gateway will be updated. We prefer that you send GatewayId when you have it.

Note

After 30 days without any interaction, the URL to SIP-URI mapping will be automatically deleted. To keep the mapping, you need to set up a process to continuously refresh the object.

Examples

Request

without GatewayId

{
  "GatewayId": null,
  "PlannedStartAtUtc": "2025-03-20T10:00:00.000Z",
  "PlannedEndAtUtc": "2025-03-20T11:30:00.000Z",
  "MeetingTypeIdentifier": "OVI",
  "MeetingUrl": "https://yourvideoplatform.com/meet-now/325dagxgy",
  "MeetingId": "325dagxgy",
  "MeetingPassword": "password123",
  "IsExternalOrganizer": false,
  "LiveCaptionsEnabled": true
}

with GatewayId

{
  "GatewayId": "0195b8c8-3fd2-787d-a73b-bfe03f5e5ff5",
  "PlannedStartAtUtc": "2025-03-20T10:00:00.000Z",
  "PlannedEndAtUtc": "2025-03-20T11:30:00.000Z",
  "MeetingTypeIdentifier": "OVI",
  "MeetingUrl": "https://yourvideoplatform.com/meet-now/325dagxgy",
  "MeetingId": "325dagxgy",
  "MeetingPassword": "password123",
  "IsExternalOrganizer": false,
  "LiveCaptionsEnabled": true
}

Response
{
  "GatewayId": "0195b8c8-3fd2-787d-a73b-bfe03f5e5ff5",
  "EndpointDialUri": "t.ab123.thb14b7@qa.joingw.com",
  "CommonDialUri": "t.123456789012@joingw.com"
}

POST [base]/bulksave

Bulk Provisioning This feature allows for the provisioning of up to 1,000 gateways in a single call. Each item in the bulk request uses the same data structure as a standard save call, with the addition of one property: BulkItemId.

  • With BulkItemId: If you provide a BulkItemId in your request, you can use it to match each item in the response, which will also include the corresponding HTTP status for that item.
  • Without BulkItemId: If BulkItemId is not set in the input, you can still identify each item in the response by its sequence. The first item in the request corresponds to the first item in the response, the second to the second, and so on.

Examples

Request
[
  {
    "BulkItemId": "item-123",
    "GatewayId": null,
    "PlannedStartAtUtc": "2025-03-20T10:00:00.000Z",
    "PlannedEndAtUtc": "2025-03-20T11:30:00.000Z",
    "MeetingTypeIdentifier": "OVI",
    "MeetingUrl": "https://yourvideoplatform.com/meet-now/325dagxgy",
    "MeetingId": "325dagxgy",
    "MeetingPassword": "password123",
    "IsExternalOrganizer": false,
    "LiveCaptionsEnabled": true
  },
  {
    "BulkItemId": null,
    "GatewayId": "0195ae46-3aad-79f5-9c1e-65609ea809a3",
    "PlannedStartAtUtc": "2025-03-21T13:00:00.000Z",
    "PlannedEndAtUtc": null,
    "MeetingTypeIdentifier": "OVI",
    "MeetingUrl": "https://yourvideoplatform.com/meet-now/53abacgi",
    "MeetingId": "53abacgi",
    "MeetingPassword": "123pass",
    "IsExternalOrganizer": true,
    "LiveCaptionsEnabled": false
  }
]
Response
[
  {
    "BulkItemId": "item-123",
    "StatusCode": 200,
    "StatusDescription": null,
    "GatewayId": "0195b8d3-a100-72eb-a0ee-411171ec8345",
    "EndpointDialUri": "t.ab123.1a2b3cD@joingw.com",
    "CommonDialUri": "t.12345678@joingw.com"
  },
  {
    "BulkItemId": "item-789",
    "StatusCode": 400,
    "StatusDescription": "Validation failed: \n-- PlannedEndAtUtc: 'Planned End At Utc' can not be before PlannedStartAtUtc. Severity: Error",
    "GatewayId": null,
    "EndpointDialUri": null,
    "CommonDialUri": null
  }
]

DELETE [base]/delete

Takes in a gatewayId, and will delete this if it exists, and returns HttpStatus Ok (200). If gatewayId does not exist, no error will be thrown, since it then is considered already deleted.