REST API (4.1)

Download OpenAPI specification:Download

WAC REST API v4.1

Authentication

bearerAuth

Security Scheme Type HTTP
HTTP Authorization Scheme bearer

alarms

Retrieve call alarms

Retrieve all created call alarms

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get an alarm by id

Retrieve the call alarm with the specified id

Authorizations:
path Parameters
id
required
string

The ID of the alarm we want to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "57c960e21f6fd2fa1bde699a",
  • "domain": "quobis",
  • "urgency": "medium",
  • "type": "call",
  • "timestamp": 1471934540760,
  • "payload":
    {
    }
}

addressbooks

Retrieve all available address books

Fetches all the available address books from all sources

Authorizations:
query Parameters
contacts
boolean
Default: false

Get user contacts as an address book

domain
boolean
Default: false

Get domain users as an address book

phonebooks
boolean
Default: false

Get phonebooks as address books

static
boolean
Default: true

Get static contacts as address books

Responses

Response samples

Content type
application/json
{
  • "addressBooks":
    [
    ]
}

credentials

Retrieve all available credentials

Fetches all the available credentials for the requesting user

Authorizations:
query Parameters
id
string
type
string
user
string
data
object

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new credential into the system

Adds a new credential object to the system's storage

Authorizations:
Request Body schema: application/json

The credential to be created

source
required
string
type
required
string
Enum: "basic" "ims" "oauth2" "token" "wac-ims"
object
domain
required
string
user
string
data
required
object
lease
required
integer

Responses

Request samples

Content type
application/json
{
  • "source": "string",
  • "type": "basic",
  • "context":
    {
    },
  • "domain": "string",
  • "user": "string",
  • "data": { },
  • "lease": 0
}

Response samples

Content type
application/json
{
  • "source": "string",
  • "type": "basic",
  • "context":
    {
    },
  • "domain": "string",
  • "user": "string",
  • "data": { },
  • "lease": 0,
  • "id": "string"
}

Fetch the specified credential

Obtains the credential identified by the given ID

Authorizations:
path Parameters
id
required
string

The ID of the credential we want to get

Responses

Response samples

Content type
application/json
{
  • "source": "string",
  • "type": "basic",
  • "context":
    {
    },
  • "domain": "string",
  • "user": "string",
  • "data": { },
  • "lease": 0,
  • "id": "string"
}

Delete the specified credential from the system

Requests the server to delete given credential

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Updates the given credential

Changes the given credential with provided data

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

The credential to be updated. Please note that the id parameter must be provided without the @source suffix.

source
string
type
string
Enum: "basic" "ims" "oauth2" "token" "wac-ims"
object
domain
string
user
string
data
object
lease
integer

Responses

Request samples

Content type
application/json
{
  • "source": "string",
  • "type": "basic",
  • "context":
    {
    },
  • "domain": "string",
  • "user": "string",
  • "data": { },
  • "lease": 0
}

Response samples

Content type
application/json
{
  • "source": "string",
  • "type": "basic",
  • "context":
    {
    },
  • "domain": "string",
  • "user": "string",
  • "data": { },
  • "lease": 0,
  • "id": "string"
}

domains

Retrieve all available domains

Fetches all the available domains for the requesting user

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new domain

Create the domain represented by the request's body

Authorizations:
Request Body schema: application/json

The data used to create a domain

domain
required
string

The name of the domain to be created

parent
string

Parent domain, defaults to user domain

origins
Array of strings

An array of regular expressions taht will match this domain

enableAnonymous
boolean

Whether the domain accepts anonymous users or not

anonymousCapabilities
Array of Array of strings

Capabilities for anonymous users under the domain

services
object

Enabled services for the domain

Responses

Request samples

Content type
application/json
{
  • "domain": "demo.quobis.com",
  • "parent": "quobis",
  • "origins":
    [
    ],
  • "enableAnonymous": true,
  • "anonymousCapabilities": [ ],
  • "services":
    {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "parent": "string",
  • "origins":
    [
    ],
  • "enableAnonymous": true,
  • "anonymousExpiration": 0,
  • "anonymousCapabilities":
    [
    ],
  • "services": { }
}

Retrieve the given domain

Fetch the given domain

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "parent": "string",
  • "origins":
    [
    ],
  • "enableAnonymous": true,
  • "anonymousExpiration": 0,
  • "anonymousCapabilities":
    [
    ],
  • "services": { }
}

Deletes a domain

Deletes the domain indicated by the given ID

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
"OK"

Updates a domain

Updates the domain with given ID

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

The data used to update a domain

domain
required
string

The name of the domain to be created

parent
string

Parent domain, defaults to user domain

origins
Array of strings

An array of regular expressions taht will match this domain

enableAnonymous
boolean

Whether the domain accepts anonymous users or not

anonymousCapabilities
Array of Array of strings

Capabilities for anonymous users under the domain

services
object

Enabled services for the domain

Responses

Request samples

Content type
application/json
{
  • "domain": "demo.quobis.com",
  • "parent": "quobis",
  • "origins":
    [
    ],
  • "enableAnonymous": true,
  • "anonymousCapabilities": [ ],
  • "services":
    {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "parent": "string",
  • "origins":
    [
    ],
  • "enableAnonymous": true,
  • "anonymousExpiration": 0,
  • "anonymousCapabilities":
    [
    ],
  • "services": { }
}

health

Check liveness

Check liveness status for a service

Responses

Check readiness

Check readiness status for a service

Responses

notifications

Resolve a pending notification

Resolve a pending notification by :id with a given action

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

Request Example

action
string

Responses

Request samples

Content type
application/json
{
  • "action": "string"
}

Response samples

Content type
application/json
"string"

sessions

Retrieve all sessions

Get all available sessions

Authorizations:
query Parameters
string or Array of strings
string or Array of strings
string or Array of strings
string or Array of strings
string or number
string or number
number or Array of numbers
string or Array of strings
string or Array of strings
users
Array of strings
string or number
string or number

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new session

Create the session represented by the request body

Authorizations:
Request Body schema: application/json

The data used to create a session

object

Responses

Request samples

Content type
application/json
{
  • "context":
    {
    }
}

Response samples

Content type
application/json
{
  • "id": "58171339e63de4ec5af1448b",
  • "token": "qQ6UclyTcmJSWarEW4bWg8mGBOptMTtz",
  • "user": "5808c9e2f5b1aeec70a4b0c0",
  • "domain": "quobis",
  • "from": 1477907257747,
  • "to": 1477907573413,
  • "expires": 30000,
  • "registered": "08768f74n987f6n7648nf89fn",
  • "context":
    {
    }
}

Delete all sessions of a given user

Tries to delete all the sessions belonging to a given user

Authorizations:
query Parameters
username
required
string
Example: username=alice@domain

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Get a Session by id

Retrieve a session by the specified id

Authorizations:
path Parameters
id
required
string

The ID of the session

Responses

Response samples

Content type
application/json
{
  • "id": "58171339e63de4ec5af1448b",
  • "token": "qQ6UclyTcmJSWarEW4bWg8mGBOptMTtz",
  • "user": "5808c9e2f5b1aeec70a4b0c0",
  • "domain": "quobis",
  • "from": 1477907257747,
  • "to": 1477907573413,
  • "expires": 30000,
  • "registered": "08768f74n987f6n7648nf89fn",
  • "context":
    {}
}

Update a session

Update a session with the data of the request body

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

The data to update the session

domain
string
from
number
object

Responses

Request samples

Content type
application/json
{
  • "domain": "demo.quobis",
  • "from": 1481111815000,
  • "context":
    {
    }
}

Response samples

Content type
application/json
{
  • "id": "58171339e63de4ec5af1448b",
  • "token": "qQ6UclyTcmJSWarEW4bWg8mGBOptMTtz",
  • "user": "5808c9e2f5b1aeec70a4b0c0",
  • "domain": "demo.quobis",
  • "from": 1481111815000,
  • "to": -1,
  • "expires": 30000,
  • "registered": "123",
  • "context":
    {
    }
}

Delete session by id

Delete the session identified by the provided id

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Revoke a session

Revoke a session so it can not be recovered

Authorizations:
Request Body schema: application/json

The data used to revoke a session

id
string

Responses

Request samples

Content type
application/json
{
  • "id": "58171339e63de4ec5af1448b"
}

Response samples

Content type
application/json
{
  • "id": "58171339e63de4ec5af1448b",
  • "token": "qQ6UclyTcmJSWarEW4bWg8mGBOptMTtz",
  • "user": "5808c9e2f5b1aeec70a4b0c0",
  • "domain": "quobis",
  • "from": 1477907257747,
  • "to": 1477907573413,
  • "expires": 30000,
  • "registered": "08768f74n987f6n7648nf89fn",
  • "context":
    {}
}

Update a set of Session

Update a set of Session with the same data

Authorizations:
Request Body schema: application/json

The data to update the sessions

ids
Array of strings
object

Responses

Request samples

Content type
application/json
{
  • "ids":
    [
    ],
  • "data":
    {
    }
}

Response samples

Content type
application/json
[
  • {
    }
]

Revoke a set of sessions

Revoke a set of session kicking all users from the system

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

users

Retrieve all the available WAC users

Retrieve the WAC users. If some filter options are sent will return a list of users that match this options

Authorizations:
query Parameters
limit
number

Max number of users to retrieve

sort_by
string
Example: sort_by=created.asc

Sorting criteria, can be key.asc or key.desc

last_item
number

Time of creation of the last user retrieved

last_match
string

Value of the sorting element in the last user retrieved

loggedBefore
number

Used to search all users that logged before given date

loggedAfter
number

Used to search all users that logged after given date

createdBefore
number

Used to search all users that was created before given date

createdAfter
number

Used to search all users that was created after given date

capabilities
Array of strings

Used to search all users that have given capabilities.

username
string

Used to filter by username

registered
boolean

Used to filter all users registered in system (user, admin). If false return all anonymous users.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Creates a new User

Create the user represented by the request body

Authorizations:
Request Body schema: application/json

The user to be created

id
string
Deprecated

This field is mantained because of backawards compatibility and will be ignored.

username
required
string
domain
required
string
role
required
string
Enum: "user" "admin"
email
string
created
number
lastLogin
number
capabilities
Array of strings
mobilePhone
Array of strings
landLineNumber
string
alias
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "domain": "string",
  • "role": "user",
  • "email": "string",
  • "created": 0,
  • "lastLogin": 0,
  • "capabilities":
    [
    ],
  • "mobilePhone":
    [
    ],
  • "landLineNumber": "string",
  • "alias": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "domain": "string",
  • "role": "user",
  • "email": "string",
  • "created": 0,
  • "lastLogin": 0,
  • "capabilities":
    [
    ],
  • "mobilePhone":
    [
    ],
  • "landLineNumber": "string",
  • "alias": "string"
}

Retrieve the WAC user identified by id

Retrieve the WAC user identified by id

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "domain": "string",
  • "role": "user",
  • "email": "string",
  • "created": 0,
  • "lastLogin": 0,
  • "capabilities":
    [
    ],
  • "mobilePhone":
    [
    ],
  • "landLineNumber": "string",
  • "alias": "string"
}

Updates a User

Update the user identified by :id with the request body

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

The user to be updated

id
string
Deprecated

This field is mantained because of backawards compatibility and will be ignored.

username
string
domain
string
role
string
Enum: "user" "admin"
email
string
created
number
lastLogin
number
capabilities
Array of strings
mobilePhone
Array of strings
landLineNumber
string
alias
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "domain": "string",
  • "role": "user",
  • "email": "string",
  • "created": 0,
  • "lastLogin": 0,
  • "capabilities":
    [
    ],
  • "mobilePhone":
    [
    ],
  • "landLineNumber": "string",
  • "alias": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "domain": "string",
  • "role": "user",
  • "email": "string",
  • "created": 0,
  • "lastLogin": 0,
  • "capabilities":
    [
    ],
  • "mobilePhone":
    [
    ],
  • "landLineNumber": "string",
  • "alias": "string"
}

Deletes a user

Deletes the user identified by :id

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Validate a mobile phone

Endpoint that validates an user's mobile phone

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json
code
required
string

Random string to check if the phone is correct

field
required
string

Phone to validate

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "field": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

agentAssign

Retrieve all agents

Retrieve all agents and their current state.

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "agents":
    [
    ]
}

agentSkills

Retrieve all AgentSkills

Retrieve all agents skills

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "skills":
    [
    ]
}

Create AgentSkill

Endpoint that creates a new AgentSkill

Authorizations:
Request Body schema: application/json

The data to create a skill

skill
required
string
agents
Array of strings

Responses

Request samples

Content type
application/json
{
  • "skill": "string",
  • "agents":
    [
    ]
}

Response samples

Content type
application/json
"Created"

Retrieve a AgentSkill

Retrieve a particular agent skill

Authorizations:
path Parameters
skill
required
string

The name of the skill we want to get

Responses

Response samples

Content type
application/json
{
  • "skill": "string",
  • "agents":
    [
    ]
}

Remove a AgentSkill

Remove a particular agent skill

Authorizations:
path Parameters
skill
required
string

The name of the skill we want to remove

Responses

Response samples

Content type
application/json
"string"

Get Agents

If non legacyAgentResolution, retrieves all agents

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "agents":
    [
    ]
}

Create agent

Endpoint that set an existing user as an agent

Authorizations:
Request Body schema: application/json

The data used to the operation

One of
userId
required
string

ID of the user that will be set as Agent

Responses

Request samples

Content type
application/json
{
  • "userIds":
    [
    ]
}

Response samples

Content type
application/json
"OK"

Deletes an agent

Endpoint that deletes an agent

Authorizations:
path Parameters
agent
required
string

The ID of the agent to delete

Responses

Response samples

Content type
application/json
"OK"

Attach Agent

Endpoint that attaches an agent to an existing skill

Authorizations:
Request Body schema: application/json

The data used to attach the agent

skill
required
string

Name of the skill the agent will be attached to

agent
required
string

ID of the agent to attach

Responses

Request samples

Content type
application/json
{
  • "skill": "string",
  • "agent": "string"
}

Response samples

Content type
application/json
"OK"

Attach Agents

Endpoint that attaches agents to an existing skill

Authorizations:
Request Body schema: application/json

The data used to attach the agents

skill
required
string

Name of the skill the agent will be attached to

agents
required
Array of strings

IDs of the agents to attach

Responses

Request samples

Content type
application/json
{
  • "skill": "string",
  • "agents":
    [
    ]
}

Response samples

Content type
application/json
"OK"

Detach Agent

Endpoint that detaches an agent from an existing skill

Authorizations:
Request Body schema: application/json

The data used to detach the agent

skill
required
string

Name of the skill the agent will be detached from

agent
required
string

ID of the agent to detach

Responses

Request samples

Content type
application/json
{
  • "skill": "string",
  • "agent": "string"
}

Response samples

Content type
application/json
"OK"

capabilities

Retrieve the capabilities

Endpoint that retrieves the capabilities of the user domain

Authorizations:
query Parameters
domain
string

Responses

Response samples

Content type
application/json
{
  • "domain":
    [
    ],
  • "user":
    [
    ]
}

callcontrol

Get calls

Endpoint that retrieves a call list associated with an authenticated user

Authorizations:
query Parameters
after
number

Oldest timestamp (in ms) for returned calls (since)

before
number

Newest timestamp (in ms) for returned calls (up to)

limit
number

Limit returned calls lenght

sortBy
string

Sort returned elements in descending order of the given field

caller
string

The caller of the desired calls

callee
string

The callee of the desired calls

target
string

The target of the desired calls

queueposition
string

Queue position of the desired calls

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create call

Endpoint that creates a call

Authorizations:
Request Body schema: application/json

The data used to create a call

calle
string
caller
string
context
object
anonymousSessionId
string
attempts
Array of objects

Responses

Request samples

Content type
application/json
{
  • "calle": "c2cagent",
  • "caller": "100@demo.quobis.com",
  • "context": { },
  • "anonymousSessionId": "",
  • "attempts": [ ]
}

Response samples

Content type
application/json
{
  • "id": "57c82b0763d8f2f3717b1dd2",
  • "caller": "100@demo.quobis.com",
  • "calle": "",
  • "target": "",
  • "users":
    [
    ],
  • "sessions":
    [
    ],
  • "date": 1472736007901,
  • "from": 1472736007901,
  • "to": 1472736007901,
  • "state": "servererror",
  • "data": { },
  • "queueposition": 0,
  • "context": { },
  • "anonymousSessionId": "",
  • "attempts": [ ]
}

Get call

Endpoint that retrieves a call by id

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "57c82b0763d8f2f3717b1dd2",
  • "caller": "100@demo.quobis.com",
  • "calle": "",
  • "target": "",
  • "users":
    [
    ],
  • "sessions":
    [
    ],
  • "date": 1472736007901,
  • "from": 1472736007901,
  • "to": 1472736007901,
  • "state": "servererror",
  • "data": { },
  • "queueposition": 0,
  • "context": { },
  • "anonymousSessionId": "",
  • "attempts": [ ]
}

Update call

Endpoint that udpates a call by id

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

The data used to update a call

calle
string
caller
string
context
object
anonymousSessionId
string
queueposition
number
state
string

Responses

Request samples

Content type
application/json
{
  • "calle": "101@demo.quobis.com",
  • "caller": "100@demo.quobis.com",
  • "context": { },
  • "anonymousSessionId": "",
  • "queueposition": 1,
  • "state": "rejected"
}

Response samples

Content type
application/json
{
  • "id": "57c82b0763d8f2f3717b1dd2",
  • "caller": "100@demo.quobis.com",
  • "calle": "101@demo.quobis.com",
  • "target": "",
  • "users":
    [
    ],
  • "sessions":
    [
    ],
  • "date": 1472736007901,
  • "from": 1472736007901,
  • "to": 1472736007901,
  • "state": "rejected",
  • "data": { },
  • "queueposition": 1,
  • "context": { },
  • "anonymousSessionId": "",
  • "attempts": [ ]
}

conferences

Retrieve all conferences

Fetches all available conferences for the requesting user

Authorizations:
query Parameters
createdAt
integer

If this param is defined, conferences older than the specified value are fetched

limit
string

returned conferences length

sortBy
string
Example: sortBy=createdAt.desc

sort returned elements in ascending (asc) or descending (desc) order of given field. Note that if order is not specifed, desc will be used as default

createdAtAfter
integer

If this param is defined, get conrefences created after the specified value

createdAtBefore
integer

If this param is defined, get conferences created before the specified value

lastItem
integer

Time of creation of the last conference retrieved

lastMatch
integer

Value of the sorting element of the last conference retrieved

state
string
Example: state=finished

If this param is defined, get conferences that are in the specifed state.

roomId
string
Example: roomId=5c8d538d1c857e000ea8a5ef

If this param is defined, get conferences with the given roomId.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieves a conference

Fetches a conference identified by the given ID

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "roomId": "string",
  • "finishedAt": 0,
  • "createdAt": 0,
  • "invites":
    [
    ],
  • "participants":
    [
    ],
  • "transfers": [ ],
  • "state": "string",
  • "domains":
    [
    ]
}

Updates a conference and notifies the users

Updates a conference based on the received one and notifies the users

Authorizations:
Request Body schema: application/json

The conference to be updated and the wacUris of the users

object
wacUris
Array of strings

Responses

Request samples

Content type
application/json
{
  • "conferenceLog":
    {
    },
  • "wacUris":
    [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "roomId": "string",
  • "finishedAt": 0,
  • "createdAt": 0,
  • "invites":
    [
    ],
  • "participants":
    [
    ],
  • "transfers": [ ],
  • "state": "string",
  • "domains":
    [
    ]
}

Updates a conference

Updates a conference based on the received one

Authorizations:
Request Body schema: application/json

The conference to be updated

object

Responses

Request samples

Content type
application/json
{
  • "conferenceLog":
    {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "roomId": "string",
  • "finishedAt": 0,
  • "createdAt": 0,
  • "invites":
    [
    ],
  • "participants":
    [
    ],
  • "transfers": [ ],
  • "state": "string",
  • "domains":
    [
    ]
}

Retrieve all conferences as an object

Fetches all available conferences for the requesting user

Authorizations:
query Parameters
createdAt
integer

If this param is defined, conferences older than the specified value are fetched

limit
string

returned conferences length

sortBy
string
Example: sortBy=createdAt.desc

sort returned elements in ascending (asc) or descending (desc) order of given field. Note that if order is not specifed, desc will be used as default

createdAtAfter
integer

If this param is defined, get conrefences created after the specified value

createdAtBefore
integer

If this param is defined, get conferences created before the specified value

lastItem
integer

Time of creation of the last conference retrieved

lastMatch
integer

Value of the sorting element of the last conference retrieved

state
string
Example: state=finished

If this param is defined, get conferences that are in the specifed state.

roomId
string
Example: roomId=5c8d538d1c857e000ea8a5ef

If this param is defined, get conferences with the given roomId.

Responses

Response samples

Content type
application/json
{
  • "conferences":
    [
    ]
}

contacts

Retrieve all user available contacts

Fetches all available contacts for the requesting user

Authorizations:
query Parameters
source
Array of strings

A list of backends used to get contacts

deviceId
string

If defined, get the contacts for this deviceId. This param needs to be defined with param source='device'

name
string

If this param is defined, get the contacts using pattern matching with this param

favorite
boolean

If defined, get the contacts by favorite field.

limit
number

If defined, limit the number of contacts retrieved

offset
number

If defined, skip the number given in the returned contacts

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new contact

Create a new contact. If it wants to create a group contact, the string "group" must be provided as source as well as a "participants" object must be provided instead of a "phones" object.

Authorizations:
Request Body schema: application/json

The contact to be created

source
string
user
string
name
string
favorite
boolean
Array of objects
emails
Array of objects
deviceId
string
contactDeviceId
string
Array of objects

Responses

Request samples

Content type
application/json
{
  • "source": "string",
  • "user": "string",
  • "name": "string",
  • "favorite": true,
  • "phones":
    [
    ],
  • "emails":
    [
    ],
  • "deviceId": "string",
  • "contactDeviceId": "string",
  • "participants":
    [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "source": "string",
  • "user": "string",
  • "name": "string",
  • "favorite": true,
  • "phones":
    [
    ],
  • "unnormalizedPhones":
    [
    ],
  • "emails":
    [
    ],
  • "deviceId": "string",
  • "contactDeviceId": "string"
}

Invalidates all contacts in a backend

Invalidate all contacts in the device backend for a given device

Authorizations:
query Parameters
deviceId
required
string

The device to invalidate

Responses

Response samples

Content type
application/json
"OK"

Retrieve a single contact

Retrieve the contact identified by id

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "source": "string",
  • "user": "string",
  • "name": "string",
  • "favorite": true,
  • "phones":
    [
    ],
  • "unnormalizedPhones":
    [
    ],
  • "emails":
    [
    ],
  • "deviceId": "string",
  • "contactDeviceId": "string"
}

Updates the given contact

Updates the given contact with the body payload

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

The contact data to be updated

id
string
source
string
user
string
name
string
favorite
boolean
Array of objects
unnormalizedPhones
Array of objects
emails
Array of objects
deviceId
string
contactDeviceId
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "source": "string",
  • "user": "string",
  • "name": "string",
  • "favorite": true,
  • "phones":
    [
    ],
  • "unnormalizedPhones":
    [
    ],
  • "emails":
    [
    ],
  • "deviceId": "string",
  • "contactDeviceId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "source": "string",
  • "user": "string",
  • "name": "string",
  • "favorite": true,
  • "phones":
    [
    ],
  • "unnormalizedPhones":
    [
    ],
  • "emails":
    [
    ],
  • "deviceId": "string",
  • "contactDeviceId": "string"
}

Deletes the given contact

Deletes the contact with the given ID

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "source": "string",
  • "user": "string",
  • "name": "string",
  • "favorite": true,
  • "phones":
    [
    ],
  • "unnormalizedPhones":
    [
    ],
  • "emails":
    [
    ],
  • "deviceId": "string",
  • "contactDeviceId": "string"
}

Insert a list of contacts

Insert a list of contacts in the given backend

Authorizations:
Request Body schema: application/json

The contacts and the backend to insert them

source
string

The destination backend for the contacts

Array of objects

Responses

Request samples

Content type
application/json
{
  • "source": "string",
  • "contacts":
    [
    ]
}

Response samples

Content type
application/json
"CREATED"

Retrieve all user available contacts as an object

Fetches all available contacts as an object for the requesting user

Authorizations:
query Parameters
source
Array of strings

A list of backends used to get contacts

deviceId
string

If defined, get the contacts for this deviceId. This param needs to be defined with param source='device'

name
string

If this param is defined, get the contacts using pattern matching with this param

favorite
boolean

If defined, get the contacts by favorite field.

limit
number

If defined, limit the number of contacts retrieved

offset
number

If defined, skip the number given in the returned contacts

Responses

Response samples

Content type
application/json
{
  • "contacts":
    [
    ]
}

datapipe

Retrieve all datapipes for an user

Get all unfinished datapipes where a user is a participant

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a datapipe

Create a new datapipe with given data

Authorizations:
Request Body schema: application/json

The data used to create a datapipe

label
string
participants
Array of strings

Responses

Request samples

Content type
application/json
{
  • "label": "labelDatapipe",
  • "participants":
    [
    ]
}

Response samples

Content type
application/json
{
  • "id": "58a8343c5d1f203d1675ea87",
  • "label": "labelDatapipe",
  • "participants":
    [
    ],
  • "connected":
    [
    ],
  • "rejected": [ ],
  • "data": [ ]
}

Get a datapipe by id

Retrieve a datapipe by the specified id

Authorizations:
path Parameters
id
required
string

The ID of the datapipe

Responses

Response samples

Content type
application/json
{
  • "id": "58a8343c5d1f203d1675ea87",
  • "label": "labelDatapipe",
  • "participants":
    [
    ],
  • "connected":
    [
    ],
  • "rejected": [ ],
  • "data": [ ]
}

Send data through a datapipe

Send new data through the datapipe identified by id

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

The data to send to the datapipe

data
string

Responses

Request samples

Content type
application/json
{
  • "data": "new data"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Update a datapipe

Update a datapipe with new values

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

The data to update the datapipe

session
string

Responses

Request samples

Content type
application/json
{
  • "session": "58a89f28e1c9a36f1f7e5951"
}

Response samples

Content type
application/json
{
  • "id": "58a8343c5d1f203d1675ea87",
  • "label": "labelDatapipe",
  • "participants":
    [
    ],
  • "connected":
    [
    ],
  • "rejected": [ ],
  • "data": [ ]
}

Deleate a datapipe

Delete a datapipe by id

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

filesharing

Get a list of FileShares

Retrieves a list of available FileShares for the user

Authorizations:

Responses

Response samples

Content type
application/json

Shares a file

Given an already uploaded file, creates a share for it

Authorizations:
Request Body schema: application/json
key
string

Responses

Request samples

Content type
application/json
{
  • "key": "file1.txt"
}

Response samples

Content type
application/json
{
  • "id": "5a1855a43b09285024703f07",
  • "owner": "597a10448bf60e7caf0b6cf1",
  • "key": "file1.txt",
  • "localPath": "/tmp/marcos/597a10448bf60e7caf0b6cf1/file1.txt",
  • "httpPath": "/tmp/marcos/www/597a10448bf60e7caf0b6cf1/file1.txt"
}

Deletes a FileShare identified by its URL

Removes the share at the given URL

Authorizations:
Request Body schema: application/json
url
string

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
"No Content"

filestorage

List available files in the storage

Returns a list of the files already available in the storage for the requesting user

Authorizations:

Responses

Response samples

Content type
application/json
[
  • "file.txt"
]

Delete a File

Deletes the file referenced by its owner and key

Authorizations:
path Parameters
owner
required
string
key
required
string

Responses

Response samples

Content type
application/json
"No Content"

login

Log into the WAC

Start a new authenticated session in the WAC

Authorizations:
Request Body schema: application/json
provider
string

The OAuth2 provider to use for authentication

token
string

The token used for log in

object

The login context (browser, language...)

Responses

Request samples

Content type
application/json
{
  • "provider": "wac",
  • "token": "52c20...7e043c31d",
  • "context":
    {
    }
}

Response samples

Content type
application/json
{
  • "access_token": "52c20...7e043c31d;",
  • "expires_in": 29991,
  • "token_type": "WACSessionToken",
  • "session_id": "57b6f6b9cffcde4149cbe060",
  • "session": { },
  • "credential": { },
  • "capabilities":
    {
    }
}

meetings

Get Meetings

Endpoint that retrieves a list of meetings created by the authenticated user

Authorizations:
query Parameters
all
boolean

Get all the meetings including the one the user participates in

language
string

Meetings with the specified language

phone
string

If this param is defined, get meetings by phone

name
string

If this param is defined, get meetings by name

validUntil
number

Get meetings older than the value of this param

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Meeting

Endpoint that creates a meeting associated with an user

Authorizations:
Request Body schema: application/json

The data used to create a meeting

name
string
participants
Array of objects
language
string
validSince
number
validUntil
number

Responses

Request samples

Content type
application/json
{
  • "name": "exampleName",
  • "participants":
    [
    ],
  • "language": "es",
  • "validSince": 1471615380000,
  • "validUntil": 1471615380000
}

Response samples

Content type
application/json
{
  • "name": "exampleName",
  • "user":
    {
    },
  • "users":
    [
    ],
  • "language": "string",
  • "participants":
    [
    ],
  • "validSince": 1471615380000,
  • "validUntil": 1471615380000,
  • "phone": "string",
  • "ddi":
    {
    },
  • "id": "string"
}

Get Meeting

Endpoint that retrieves a meeting by id

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "name": "exampleName",
  • "user":
    {
    },
  • "users":
    [
    ],
  • "language": "string",
  • "participants":
    [
    ],
  • "validSince": 1471615380000,
  • "validUntil": 1471615380000,
  • "phone": "string",
  • "ddi":
    {
    },
  • "id": "string"
}

Update Meeting

Endpoint that updates a meeting by id

Authorizations:
path Parameters
id
required
string
query Parameters
sendInvites
boolean
Default: false

Flag to know if the service sends invitations to the participants

Request Body schema: application/json

The data used to update a meeting

name
required
string
required
Array of objects
language
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "participants":
    [
    ],
  • "language": "string"
}

Response samples

Content type
application/json
{
  • "name": "exampleName",
  • "user":
    {
    },
  • "users":
    [
    ],
  • "language": "string",
  • "participants":
    [
    ],
  • "validSince": 1471615380000,
  • "validUntil": 1471615380000,
  • "phone": "string",
  • "ddi":
    {
    },
  • "id": "string"
}

Delete Meeting

Endpoint that deletes a meeting by id

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
"OK"

oauth2provider

Get available tokens

Asks the server for the list of available OAuth2 tokens for a user

Authorizations:
query Parameters
username
required
string
Example: username=alice@quobis

The username to obtain the tokens from

type_hint
string
Default: "access_token"
Enum: "access_token" "refresh_token" "all"

The type of token to retrieve

Responses

Response samples

Content type
application/json
{
  • "accessTokens":
    [
    ],
  • "refreshTokens":
    [
    ]
}

Request a new OAuth2 bearer token

Asks the server to issue a new OAuth2 bearer token

Request Body schema: application/json

The data provided to issue a token

Any of
grant_type
string
username
string
password
string

Responses

Request samples

Content type
application/json
{
  • "grant_type": "anonymous",
  • "username": "@quobis"
}

Response samples

Content type
application/json
{
  • "access_token": "ffda919214b7d8cfafcb2c67fc4bf27a68f6120a4dd7de2ac2ce61009dc9ee6bab04bebfa89fb4949d2f808dbed6409b16cbd8c8d05417c1cfda88d0f01a441f",
  • "refresh_token": "2947926b49285a734a577a0343d6a824c0e77d52824cfd460df89042919ad495f6dcf9be49dc77312fe2487f327b39b5383a03e6433f684606014badd53c5968",
  • "expires_in": 3599,
  • "token_type": "Bearer"
}

Delete tokens for a given user

Asks the server to drop tokens belonging to a given user

Authorizations:
query Parameters
username
required
string
Example: username=alice@quobis

The username to delete the tokens from

type_hint
string
Default: "access_token"
Enum: "access_token" "refresh_token" "all"

The type of token to delete

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Get a list of registered OAuth2 clients

Asks the server for the list of registered OAuth2 clients

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an OAuth2 client

Asks the server to register a new OAuth2 client

Authorizations:
Request Body schema: application/json

The data to create a OAuth2 client

name
string
redirectURI
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "id": "5889b0a5a9d237ee2970f676",
  • "name": "Fancy App v1.2.3",
  • "clientId": "1a6e5eb915c3b6a717f5bd2dc8f9762e315b4babeb831a576979d0bd9cf375b9@wac",
  • "clientSecret": "d38809fb88eecd348d7be3118e92b3fb3054b20a3e348680e70af328a97c3698"
}

Get a given OAuth2 registered client

Asks the server for the registered OAuth2 client with the given id

Authorizations:
path Parameters
id
required
string

The id of the OAuth2 client to be retrieved

Responses

Response samples

Content type
application/json
{
  • "id": "5889b0a5a9d237ee2970f676",
  • "name": "wacInitializer",
  • "redirectURI": "",
  • "clientId": "1a6e5eb915c3b6a717f5bd2dc8f9762e315b4babeb831a576979d0bd9cf375b9@wac",
  • "clientSecret": "d38809fb88eecd348d7be3118e92b3fb3054b20a3e348680e70af328a97c3698"
}

Delete a OAuth2 client

Asks the server to delete the registered OAuth2 client with the given id

Authorizations:
path Parameters
id
required
string

The id of the OAuth2 client to be retrieved

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Request information on a token

Asks the server for information about an OAuth2 bearer token. Note that for backwards compatibility, access_token is also accepted

Authorizations:
query Parameters
token
required
string
Example: token=ffda919214b7d8cfafcb2c67fc4bf27a68f6120a4dd7de2ac2ce61009dc9ee6bab04bebfa89fb4949d2f808dbed6409b16cbd8c8d05417c1cfda88d0f01a441f

Responses

Response samples

Content type
application/json
{
  • "audience": "8c0786627376adc29b4fa479e62c2d424357d5981ad2ceff294c9387956dc2af",
  • "scope": "string",
  • "user_id": "5889b0a5a9d237ee2970f678",
  • "expires_in": 634
}

Revoke a bearer token

Asks the server to revoke a token (access or refresh)

Request Body schema: application/json

The data to revoke a token

token
required
string
token_type_hint
string
Default: "access_token"
Enum: "access_token" "refresh_token"

Responses

Request samples

Content type
application/json
{
  • "token": "96b45988bdb30361a9e3e21fe3d48d666cfdc6bf130f4bbd95cc71fab029742d22b1a2d5c0f1034654a57dda49b0f6a276f502f3a1d79c8ac60f88f951894401",
  • "token_type_hint": "access_token"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

phonebook

Get phonebooks by subscriber

Get all phonebooks a subscriber is subscribed to

Authorizations:
query Parameters
subscriberId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create phonebook

Create a new phonebook

Authorizations:
Request Body schema: application/json

The data used to create a phonebook

phonebookName
required
string

Name for the new phonebook

Responses

Request samples

Content type
application/json
{
  • "phonebookName": "customPhonebookName"
}

Response samples

Content type
application/json
{
  • "phonebook":
    {
    }
}

Delete phonebook

Remove a phonebook from the system

Authorizations:
path Parameters
phonebookId
required
string

Responses

Response samples

Content type
application/json
{
  • "phonebook":
    {
    }
}

Add subscriber to phonebook

Add a new subscriber to a phonebook

Authorizations:
path Parameters
phonebookId
required
string
Request Body schema: application/json
subscriberId
required
string

Responses

Request samples

Content type
application/json
{
  • "subscriberId": "5bb5bfdee1d2e200133b9137"
}

Response samples

Content type
application/json
{
  • "phonebook":
    {
    }
}

Remove a phonebook's subscriber

Remove a subscriber from a phonebook

Authorizations:
path Parameters
phonebookId
required
string
subscriberId
required
string

Responses

Response samples

Content type
application/json
{
  • "phonebook":
    {
    }
}

Add contact to phonebook

Add a new contact to a phonebook

Authorizations:
path Parameters
phonebookId
required
string
Request Body schema: application/json
name
string
address
string

Responses

Request samples

Content type
application/json
{
  • "name": "exampleName",
  • "address": "exampleAddress"
}

Response samples

Content type
application/json
{
  • "phonebook":
    {
    },
  • "createdContact":
    {
    }
}

Remove a phonebook's contact

Remove a contact from a phonebook

Authorizations:
path Parameters
phonebookId
required
string
contactId
required
string

Responses

Response samples

Content type
application/json
{
  • "phonebook":
    {
    }
}

presence

Retrieve a presence list

Endpoint that retrieves presences subscribed previously

Authorizations:
query Parameters
withoutAvatar
boolean

If true, the result will not have avatars

addresses
Array of strings

If not null, the result will only contain the presence of the given user addresses

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Subscribe to an address

Endpoint that subscribes to a user address and returns its current presence

Authorizations:
Request Body schema: application/json

The address to subscribe to

address
string

Responses

Request samples

Content type
application/json
{
  • "address": "wac-user:58cbbee38b0389d760ece803"
}

Response samples

Content type
application/json
{
  • "id": "57986f1081a0d1b014e74a15",
  • "address": "wac-user:58cbbee08b0389d760ece803",
  • "online": false,
  • "activity": "unknown",
  • "mood": "unknown",
  • "note": "",
  • "avatar": "",
  • "displayName": ""
}

Retreive a presence

Endpoint that retrieves a presence object by address

Authorizations:
path Parameters
address
required
string

The address to retrieve a presence

Responses

Response samples

Content type
application/json
{
  • "id": "57986f1081a0d1b014e74a15",
  • "address": "wac-user:58cbbee08b0389d760ece803",
  • "online": false,
  • "activity": "unknown",
  • "mood": "unknown",
  • "note": "",
  • "avatar": "",
  • "displayName": ""
}

Update presence

Endpoint that updates the presence of an authenticated user

Authorizations:
path Parameters
address
required
string

The address to update a presence

Request Body schema: application/json

The data to update the presence

online
boolean
activity
string
mood
string
note
string
avatar
string
displayName
string

Responses

Request samples

Content type
application/json
{
  • "online": true,
  • "activity": "unknown",
  • "mood": "unknown",
  • "note": "",
  • "avatar": "",
  • "displayName": "John Doe"
}

Response samples

Content type
application/json
{
  • "id": "57986f1081a0d1b014e74a15",
  • "address": "wac-user:58cbbee08b0389d760ece803",
  • "online": true,
  • "activity": "unknown",
  • "mood": "unknown",
  • "note": "",
  • "avatar": "",
  • "displayName": "John Doe"
}

Delete a presence subscription

Endpoint that deletes a presence subscription by address

Authorizations:
path Parameters
address
required
string

The address to unsubscribe to a presence

Responses

Response samples

Content type
application/json
"OK"

Subscribe to multiple addresses

Endpoint that enables subscription to multiple addresses

Authorizations:
Request Body schema: application/json

The presences' addresses to subscribe to

Array ()
string

Responses

Request samples

Content type
application/json
[
  • "wac-user:58cbbee38b0389d760ece803"
]

Response samples

Content type
application/json
[
  • {
    }
]

pushnotifications

Notify Push Token

Notify a push token used to send push notifications

Authorizations:
Request Body schema: application/json
deviceId
string

Identifies the deviceId where the token was generated, which is useful to match with previous tokens

tokenType
string

Identifies the client which must be used to send the push

token
string

Token used to send the push

Responses

Request samples

Content type
application/json
{
  • "deviceId": "string",
  • "tokenType": "string",
  • "token": "string"
}

Response samples

Content type
application/json
"No Content"

Delete Push Token

Delete every push token taht belongs to a device

Authorizations:
Request Body schema: application/json
deviceId
string

Id of the device every token should be deleted

Responses

Request samples

Content type
application/json
{
  • "deviceId": "string"
}

Response samples

Content type
application/json
"No Content"

Get tokens of an user

Obtain token ids of a given user

Authorizations:
path Parameters
userId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Send Push Notification

Send a push notification

Authorizations:
Request Body schema: application/json
tokenId
string

The token used to send the notification

notification
object

The object intended to send as notification

Responses

Request samples

Content type
application/json
{
  • "tokenId": "string",
  • "notification": { }
}

Response samples

Content type
application/json
"No Content"

recordings

Retrieve all recordings

Retrieve all available recordings for a source

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Start the recording for a call

Start the recording for a call identified by id

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

The data to start the recording

filename
required
string

The name of the filename where the recording will be saved

source
string

The backend to use

Responses

Request samples

Content type
application/json
{
  • "filename": "filename-test",
  • "source": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Stop the recording for a call

Stop the recording for a call identified by id

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json

The data to stop the recording

source
string

The backend to use

Responses

Request samples

Content type
application/json
{
  • "source": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

remotelog

Create remote log

Endpoint that creates a remote log to a user

Authorizations:
Request Body schema: application/json
level
string
file
string
text
string

Responses

Request samples

Content type
application/json
{
  • "level": "DEBUG_0",
  • "file": "services/presence",
  • "text": "example"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

resolver

Get previously resolved addresses

Endpoint that retrieve the previously resolved addresses

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "resolved":
    [
    ],
  • "subscribed":
    [
    ]
}

Request a new address resolution

Endpoint used to resolve new addresses. Resolved elementes and the updated subscription list are returned

Authorizations:
Request Body schema: application/json
Array ()
string

Responses

Request samples

Content type
application/json
[
  • "alice@jt",
  • "alice"
]

Response samples

Content type
application/json
{
  • "resolved":
    [
    ],
  • "subscribed":
    [
    ]
}

Update subscriptions

Endpoint used to update subscription list.

Authorizations:
Request Body schema: application/json
resolved
required
Array of strings
subscribed
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "resolved":
    [
    ],
  • "subscribed":
    [
    ]
}

Response samples

Content type
application/json
{
  • "resolved":
    [
    ],
  • "subscribed":
    [
    ]
}

Resolve the gateway's username

Get a gateway's username by user id

Authorizations:
Request Body schema: application/json
id
string

Responses

Request samples

Content type
application/json
{
  • "id": "cafecafecafecafe"
}

Response samples

Content type
application/json
"100@kamdev.quobis.com"

Resolve an user's username

Get a user's username given its gateway username

Authorizations:
path Parameters
value
required
string
Request Body schema: application/json
username
string

Responses

Request samples

Content type
application/json
{
  • "username": "100@kamdev.quobis.com"
}

Response samples

Content type
application/json
"5c518cbd13670802a4db28f3"

Resolve an address to an user without subscribing

Resolve an address to an user without subscribing

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "id": "57cfc14cf52bb286665f7d6e",
  • "domain": "quobis",
  • "username": "alice",
  • "email": "user@example.com",
  • "capabilities":
    [
    ],
  • "mobilePhone": [ ],
  • "landLineNumber": "",
  • "alias": "",
  • "gatewayUsername": "130@demo.quobis.com"
}

Resolve an address to an user without subscribing Deprecated

Resolve an address to an user without subscribing

Authorizations:
Request Body schema: application/json
addresses
string

Responses

Request samples

Content type
application/json
{
  • "addresses": "wac-user:58cbbee08b0389d760ece803"
}

Response samples

Content type
application/json
{
  • "id": "57cfc14cf52bb286665f7d6e",
  • "domain": "quobis",
  • "username": "alice",
  • "email": "user@example.com",
  • "capabilities":
    [
    ],
  • "mobilePhone": [ ],
  • "landLineNumber": "",
  • "alias": "",
  • "gatewayUsername": "130@demo.quobis.com"
}

Resolve participants of a group

Resolve gateway usernames of group participants by a group name

Authorizations:
path Parameters
groupname
required
string

Responses

Response samples

Content type
application/json
{
  • "gatewayUsernames":
    [
    ]
}

sipmappings

Get a specific mapping

Endpoint that retrieves a specific mapping

Authorizations:
query Parameters
ownerUri
required
string

Sippo URI specifying the owner's URI

Responses

Response samples

Content type
application/json
{
  • "username": "alice",
  • "password": "foo"
}

Create a mapping

Endpoint that creates a mapping

Authorizations:
Request Body schema: application/json

The data to create a mapping

ownerUri
required
string

SippoURI representing the credential's owner. It can be both a group or a user URI

required
object

Responses

Request samples

Content type
application/json
{
  • "ownerUri": "wac-user:aliceId",
  • "credential":
    {
    }
}

Response samples

Content type
application/json
{
  • "username": "alice",
  • "password": "foo"
}

Update a mapping

Endpoint that updates a mapping's username or password

Authorizations:
Request Body schema: application/json

The data to update a mapping

ownerUri
required
string

SippoURI representing the credential's owner. It can be both a group or a user URI

required
object

Responses

Request samples

Content type
application/json
{
  • "ownerUri": "wac-user:aliceId",
  • "credential":
    {
    }
}

Response samples

Content type
application/json
{
  • "username": "alice",
  • "password": "foo"
}

Remove a mapping

Endpoint that removes a mapping by its owner's sippo uri

Authorizations:
query Parameters
ownerUri
required
string

Sippo URI specifying the owner's URI

Responses

Response samples

Content type
application/json
"No Content"

callstats

Create a stat

Endpoint that creates a call stat associated with a user

Authorizations:
Request Body schema: application/json

The data to be create the call stat

message
string
object
ts
number

Responses

Request samples

Content type
application/json
{
  • "message": "call-brief",
  • "payload":
    {
    },
  • "ts": 1471934540760
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Enable stat

Endpoint that enables stat for given user

Authorizations:
Request Body schema: application/json

The data to enable a stat

user
string
enable
boolean
callid
string

Responses

Request samples

Content type
application/json
{
  • "user": "57985e3781a0d1b014e74a06",
  • "enable": true,
  • "callid": "57c6b9fe2f90f1264134c58a"
}

Response samples

Content type
application/json
{
  • "callid": "57c6b9fe2f90f1264134c58a",
  • "enable": true
}

Enable stat

Endpoint that enables stat for a given user

Authorizations:
path Parameters
id
required
string

The ID of the call to get a stat

Responses

Response samples

Content type
application/json
{
  • "domain": "quobis",
  • "user": "57985e3781a0d1b014e74a06",
  • "service": "CallStats",
  • "type": "call-brief",
  • "timestamp": 1471934540760,
  • "payload":
    {
    },
  • "ts": 1471934540760
}

status

Retrieve WAC's status summary

Obtain a summary of the status of the WAC

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "activeUsers": [ ],
  • "activeCalls": [ ],
  • "calls":
    {
    },
  • "uptime": 69347983,
  • "memoryUsage":
    {
    }
}

usersettings

Retrieve a UserSetting list

Endpoint taht gets any setting associated with a given user

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new UserSetting

Endpoint that creates a new setting and associates it to the given user

Authorizations:
Request Body schema: application/json

The data used to create a UserSetting

source
string
key
string
value
string

Responses

Request samples

Content type
application/json
{
  • "source": "wac",
  • "key": "test",
  • "value": "test"
}

Response samples

Content type
application/json
{
  • "id": "57c817cff28b6f1b47b01d0b@wac",
  • "source": "wac",
  • "user": "57985e3781a0d1b014e74a06",
  • "key": "test",
  • "value": "test"
}

Retrieve a UserSetting

Endpoint that retrieves a user setting by id

Authorizations:
path Parameters
id
required
string

The ID of the user setting

Responses

Response samples

Content type
application/json
{
  • "id": "57c817cff28b6f1b47b01d0b@wac",
  • "source": "wac",
  • "user": "57985e3781a0d1b014e74a06",
  • "key": "test",
  • "value": "test"
}

Update a UserSetting

Endpoint that updates a setting with the provided data

Authorizations:
path Parameters
id
required
string

The ID of the user setting

Request Body schema: application/json

The data to update the setting

source
string
key
string
value
string

Responses

Request samples

Content type
application/json
{
  • "source": "wac",
  • "key": "keyTestValue",
  • "value": "testValue"
}

Response samples

Content type
application/json
{
  • "id": "57c817cff28b6f1b47b01d0b@wac",
  • "source": "wac",
  • "user": "57985e3781a0d1b014e74a06",
  • "key": "keyTestValue",
  • "value": "testValue"
}

Delete a UserSetting

Endpoint that deletes a setting by id

Authorizations:
path Parameters
id
required
string

The ID of the user setting

Responses

Response samples

Content type
application/json
"OK"

usersgroup

Get groups

Get a list of all groups

Authorizations:
query Parameters
participating
boolean

If this flag exists, get the groups where the user is participating

targetUserId
string

If this flag exists, get the groups where the targetUserId is participating

Responses

Response samples

Content type
application/json
{
  • "groupList":
    [
    ]
}

Create group

Create a new group

Authorizations:
Request Body schema: application/json
groupId
string

Id of the group to create, which will be used to be resolved. Note that it must be unique. If not provided, a random one will be generated

name
required
string

Name of the group. Useful to provide a familiar name.

Responses

Request samples

Content type
application/json
{
  • "groupId": "myGroupID",
  • "name": "myGroup"
}

Response samples

Content type
application/json
{
  • "id": "5b6404336bcfa52826affe5c",
  • "name": "myGroup",
  • "groupId": "myGroupID",
  • "participants": [ ],
  • "owner":
    {
    }
}

Remove user from every group

Makes an user leave each group she belongs to. If the request author has an user role, she will be the target of the action, whereas if her role is admin, she can remove other users.

Authorizations:
Request Body schema: application/json
targetUserId
string

Responses

Request samples

Content type
application/json
{
  • "targetUserId": "string"
}

Response samples

Content type
application/json
"No Content"

Get group

Get a group information by groupId

Authorizations:
path Parameters
groupId
required
boolean

The identifier of the group

Responses

Response samples

Content type
application/json
{
  • "id": "5b6404336bcfa52826affe5c",
  • "name": "myGroup",
  • "groupId": "myGroupID",
  • "participants": [ ],
  • "owner":
    {
    }
}

Update group

Update group by groupId

Authorizations:
path Parameters
groupId
required
boolean

The identifier of the group

Request Body schema: application/json

The data to update the group

key
any

Responses

Request samples

Content type
application/json
{
  • "key": "value"
}

Response samples

Content type
application/json
"No Content"

Delete group

Delete a group by groupId. Note that the user that performs the action must be the owner

Authorizations:
path Parameters
groupId
required
boolean

The identifier of the group

Responses

Response samples

Content type
application/json
"No Content"

Add participant to group

Add a participant to a group. Note that the user that performs the action must be the owner

Authorizations:
path Parameters
groupId
required
boolean

The identifier of the group

Request Body schema: application/json

The data to update the group

targetUserId
string

Responses

Request samples

Content type
application/json
{
  • "targetUserId": "string"
}

Response samples

Content type
application/json
"No Content"

Remove user from group

Remove a user from a group. Note that the user that performs the action must be the owner

Authorizations:
path Parameters
groupId
required
boolean

The identifier of the group

Request Body schema: application/json

The data to update the group

targetUserId
string

Responses

Request samples

Content type
application/json
{
  • "targetUserId": "string"
}

Response samples

Content type
application/json
"No Content"

Check if a user exists in a group

Check if a user is participating in a group

Authorizations:
path Parameters
groupId
required
boolean

The identifier of the group

userId
required
boolean

The identifier of a user

Responses

Response samples

Content type
application/json
"OK"

Remove all participants from group

Remove all participants from a group. Note that the user that performs the action must be the owner

Authorizations:
path Parameters
groupId
required
boolean

The identifier of the group

Responses

Response samples

Content type
application/json
"No Content"

Leave group

Leave a group

Authorizations:
path Parameters
groupId
required
boolean

The identifier of the group

Responses

Response samples

Content type
application/json
"No Content"

Create Groups

Create several groups

Authorizations:
Request Body schema: application/json

The data to create the groups

Array of objects

Responses

Request samples

Content type
application/json
{
  • "groups":
    [
    ]
}

Response samples

Content type
application/json
{
  • "groups":
    [
    ]
}

xmpp

Xmpp login

Checks request's Authorization header for valid token

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "domain": "string",
  • "username": "string",
  • "email": "string",
  • "created": 0,
  • "lastLogin": 0,
  • "role": "string",
  • "capabilities":
    [
    ],
  • "mobilePhone":
    [
    ],
  • "landLineNumber": "string",
  • "alias": "string"
}

Sends a push notification for an XMPP message

Builds a push notification for the given XMPP payload

Request Body schema: application/json

The XMPP data for the push notification

node
string

The device the push notification is for

sender
string

The sender of the XMPP message originating the push notification

body
string

The body, if any, of the XMPP message originating the push notification

{http://quobis.com/xmpp/push}oob
string

The OOB URL, if any, of the XMPP message originating the push notification

{http://quobis.com/xmpp/push}muc
string

The JID of the muc generating the push, if any

{http://quobis.com/xmpp/push}muc-name
string

The friendly name for the MUC

{http://quobis.com/xmpp/push}is-muc-invite
boolean

Whether the push is for a MUC invite or not

{http://quobis.com/xmpp/push}muc-invite-from
string

The JID of the user who invites

Responses

Request samples

Content type
application/json
{
  • "node": "cafecafe",
  • "sender": "alice@example.org",
  • "body": "Hi there!",
  • "{http://quobis.com/xmpp/push}oob": "http://upload.example.org/i/pic.jpg",
  • "{http://quobis.com/xmpp/push}muc": "group@conference.quobis",
  • "{http://quobis.com/xmpp/push}muc-name": "Family group",
  • "{http://quobis.com/xmpp/push}is-muc-invite": true,
  • "{http://quobis.com/xmpp/push}muc-invite-from": "alice@quobis"
}

Response samples

Content type
application/json
{
  • "error": "string"
}

Informs of a new Push Token

Registers a new push token to be used for XMPP notifications

Authorizations:
Request Body schema: application/json

The data about the new XMPP push token

token
string

The Push Token as informed by the provider

tokenType
string

The identifier for the push provider

node
string

The identifier of the device registering the push token

Responses

Request samples

Content type
application/json
{
  • "token": "906119f96a4fa2c55962d3fe681f774abdcadc4373a2a25c552da5db7402cf45",
  • "tokenType": "firebase, apn",
  • "node": "efDaLHCPOZGuj8QaJ7L3uflKQHmBuunC;"
}

Response samples

Content type
application/json
{
  • "node": "efDaLHCPOZGuj8QaJ7L3uflKQHmBuunC;",
  • "secret": "gae6pha8eu2ahchie0ooza8Phaeroo8AeD0jo9kooqueicheeCeereivaitahgie"
}

Asks for the unregistration of an XMPP push token

Unregisters an XMPP push token from the server

Authorizations:
Request Body schema: application/json

The data for the unregistration

node
string

The identifier of the device unregistering the push token

tokenType
string

The identifier for the push provider

Responses

Request samples

Content type
application/json
{
  • "node": "efDaLHCPOZGuj8QaJ7L3uflKQHmBuunC;",
  • "tokenType": "firebase, apn"
}

Response samples

Content type
application/json
{
  • "node": "efDaLHCPOZGuj8QaJ7L3uflKQHmBuunC;",
  • "secret": "gae6pha8eu2ahchie0ooza8Phaeroo8AeD0jo9kooqueicheeCeereivaitahgie"
}

pushNotification

Sends a push notification for an XMPP message

Builds a push notification for the given XMPP payload

Request Body schema: application/json

The XMPP data for the push notification

node
string

The device the push notification is for

sender
string

The sender of the XMPP message originating the push notification

body
string

The body, if any, of the XMPP message originating the push notification

{http://quobis.com/xmpp/push}oob
string

The OOB URL, if any, of the XMPP message originating the push notification

{http://quobis.com/xmpp/push}muc
string

The JID of the muc generating the push, if any

{http://quobis.com/xmpp/push}muc-name
string

The friendly name for the MUC

{http://quobis.com/xmpp/push}is-muc-invite
boolean

Whether the push is for a MUC invite or not

{http://quobis.com/xmpp/push}muc-invite-from
string

The JID of the user who invites

Responses

Request samples

Content type
application/json
{
  • "node": "cafecafe",
  • "sender": "alice@example.org",
  • "body": "Hi there!",
  • "{http://quobis.com/xmpp/push}oob": "http://upload.example.org/i/pic.jpg",
  • "{http://quobis.com/xmpp/push}muc": "group@conference.quobis",
  • "{http://quobis.com/xmpp/push}muc-name": "Family group",
  • "{http://quobis.com/xmpp/push}is-muc-invite": true,
  • "{http://quobis.com/xmpp/push}muc-invite-from": "alice@quobis"
}

Response samples

Content type
application/json
{
  • "error": "string"
}

Informs of a new Push Token

Registers a new push token to be used for XMPP notifications

Authorizations:
Request Body schema: application/json

The data about the new XMPP push token

token
string

The Push Token as informed by the provider

tokenType
string

The identifier for the push provider

node
string

The identifier of the device registering the push token

Responses

Request samples

Content type
application/json
{
  • "token": "906119f96a4fa2c55962d3fe681f774abdcadc4373a2a25c552da5db7402cf45",
  • "tokenType": "firebase, apn",
  • "node": "efDaLHCPOZGuj8QaJ7L3uflKQHmBuunC;"
}

Response samples

Content type
application/json
{
  • "node": "efDaLHCPOZGuj8QaJ7L3uflKQHmBuunC;",
  • "secret": "gae6pha8eu2ahchie0ooza8Phaeroo8AeD0jo9kooqueicheeCeereivaitahgie"
}

Asks for the unregistration of an XMPP push token

Unregisters an XMPP push token from the server

Authorizations:
Request Body schema: application/json

The data for the unregistration

node
string

The identifier of the device unregistering the push token

tokenType
string

The identifier for the push provider

Responses

Request samples

Content type
application/json
{
  • "node": "efDaLHCPOZGuj8QaJ7L3uflKQHmBuunC;",
  • "tokenType": "firebase, apn"
}

Response samples

Content type
application/json
{
  • "node": "efDaLHCPOZGuj8QaJ7L3uflKQHmBuunC;",
  • "secret": "gae6pha8eu2ahchie0ooza8Phaeroo8AeD0jo9kooqueicheeCeereivaitahgie"
}

supportChat

Requests to create a new support chat

Initiates the request of a new support chat

Authorizations:
Request Body schema: application/json
id
required
string

the request ID

context
object

an arbitrary context for the agent assigner

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "context": { }
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Retrieves the current support chats

Retrieves all the current support chats the asking user is participating in

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Transfers the current support chat to another agent

An agent wants to transfer the support chat to another agent

Authorizations:
Request Body schema: application/json
id
required
string
required
object

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "destination":
    {
    }
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}