Page tree
Skip to end of metadata
Go to start of metadata

The Universal Bar API

The xCALLY Phonebar provides CTI capabilities to call external application on one hand and many API to allow your applications to control the phonebar and perform several operations.

API are easy to be called via http requests. The API answers are available via http JSON standard requests (XML is not supported).

Endpoints are documented with the HTTP method for the request and a partial resource identifier.

GET /api/calls

Prepend your Universal Bar URL to the resource identifier to get the full endpoint URL:

Default port is the 9888 (you can change the port inside the Shuttle GUI agent section)

Curly braces, {}, indicate values you have to supply.

GET /api/answer/{sessionId}

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests.

In order to enable APIs, please see the configuration steps Here

Please note we can update APIs from time to time

On this page:


List calls 

Get information about the active calls.

GET /api/calls

Using curl:
curl http://{domain}:{port}/api/calls -v


Answer an incoming call

GET /api/answer

Using curl:
curl http://{domain}:{port}/api/answer -v

Answer a specific incoming call

GET /api/answer/{sessionId}

Using curl:
curl http://{domain}:{port}/api/answer/{sessionId} -v


Originate a new call from number

Number is mandatory.

GET /api/originate/{number}

Using curl:
curl http://{domain}:{port}/api/originate/{number} -v


Hangup all active calls

GET /api/hangup

Using curl:
curl http://{domain}:{port}/api/hangup -v

Hangup a specific active call

GET /api/hangup/{sessionId}

Using curl:
curl http://{domain}:{port}/api/hangup/{sessionId} -v


Put on hold an active call

get /api/hold
Using curl:
curl http://{domain}:{port}/api/hold -v

Put on hold a specific active call

get /api/hold/{session}
Using curl:
curl http://{domain}:{port}/api/hold/{sessionId} -v


Transfer an active call

GET /api/transfer?number={number}

{number} is mandatory

Using curl:
curl http://{domain}:{port}/api/transfer?number={number} -v

Transfer a specific active call

GET /api/transfer/{sessionId}?number={number}

Using curl:
curl http://{domain}:{port}/api/transfer/{sessionId}?number={number} -v

Attended transfer

GET /api/transfer/attendant/{sessionId}/{partnerSessionId}

Using curl:
curl http://{domain}:{port}/api/transfer/attendant/{sessionId}/{partnerSessionId}

Example to call the extension 12498398500


Conference 2 active calls

GET /api/conference

Using curl:
curl http://{domain}:{port}/api/conference -v


Here you can download a html/javascript file to use as Universal Bar API example.

In particular you will see how to:

  • manage the Universal Bar status
  • manage a call, inserting the phone number as input
  • manage a direct call to a specific agent (i.e. john doe)
  • manage active calls

You just need to launch the html file, after the Universal Bar login, to get the result:

  • No labels