Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Scroll export button
scopecurrent
template-id0fa09813-8b86-460a-aa1d-ef450a80e9ce
quick-starttrue
add-onScroll PDF Exporter

...

1. Go to WMS -> PBX -> Integrations -> Cloud integrations tab

Note

Note: In case of WMS version lower than 6.05.20240119.1, the tab is named Calendars (or x-bees in case of a PBX with x-bees license).



2. Click on the Webhook integration -> click Add new integration


3. On the New webhook integration screen, fill out the following fields:

Select transmission type for sending the events:

  • WEBHOOK: POST requests are sent to the URL, specified by customer
  • AWS SQS: events are sent to AWS SQS queue


a) In case of WebHook transmission type:

  1. In the URL field, indicate the URL where the data should be sent to. 
  2. Secret is generated automatically and cannot be edited. 

    Note

    Note: The endpoint should be publicly accessible with a valid HTTPS certificate, accept HTTP POST requests with JSON payloads, respond with codes from 200 to 299 as quickly as possible, and handle multiple identical calls in case of retries due to network or server failures (up to 3 times).


  3. Choose types of events: 
    1. Call events
    2. Conference events
    3. Chat events
    4. Analytics events
    5. Presence events

      By clicking on the event type, you can view the list of events and choose if you want to use all events in the list or only the selected ones:

Depending on the number of chosen events the checkbox in front of event type may look differently: dash icon (1) if not all events were selected and checkmark (2) in case all the events within a particular event type are used:


Presence events return user status (e.g. Available, Away, Busy) status message and time, as well as location. For the User presence telephony option, the following statuses are supported:

    • registered (registered and idle)
    • ringing (in ringing state)
    • talking (in conversation)
    • rt (in conversation and ringing state)

4. Click Add

Once installed, you can see details about the new integration which includes type, URL, and types of events selected. 

b) In case of AWS SQS transmission type:

  1. In the SQS URL field, indicate the SQS URL where the data should be sent to.
  2. Enter AWS Key and Secret in the relevant fields. 

  3. Choose types of events: 
    1. Call events
    2. Conference events
    3. Chat events
    4. Analytics events
    5. Presence events


By clicking on the event type, you can view the list of events and choose if you want to use all events in the list or only the selected ones:

Depending on the number of chosen events the checkbox in front of event type may look differently: dash icon (1) if not all events were selected and checkmark (2) in case all the events within a particular event type are used:

User presence returns user status (e.g. Available, Away, Busy) status message and time, as well as location. For the User presence telephony option, the following statuses are supported:

  • registered (registered and idle)
  • ringing (in ringing state)
  • talking (in conversation)
  • rt (in conversation and ringing state)

4. Click Add.

How to manage WebHook integrations

Once installed, you can see details about the new integration which includes type, URL, and types of events selected:

...

Copy the Integration ID and use it in your web application / service.

Warning

Important: The timeout for Webhook reply is 5 seconds. 


Warning

Important: For security reasons, it is highly recommended that you validate the data received to your web application / service and make sure the data comes from Wildix and the data is not broken. 

For this, check `signature` for all received events:

  • For webhook transport, you can find signature in the request's header x-signature
  • For SQS transport, you can find signature in the MessageAttributes ['X-SIGNATURE']

Edit the integration

To edit the integration, click on the pencil icon in front of the integration:

Remove the integration

To remove the integration, click on the delete icon in front of it:

The action cannot be undone. Confirm the deletion by entering the word delete and clicking the Delete button on the screen that pops up:

Configuration example

See Webhook configuration example on this page.


Supported event types

Call start 

Code Block
{
  "id": "it_w118741_1693389850.110",
  "pbx": "221100001bab",
  "time": 1693389850810,
  "company": "it_w118741",
  "type": "call:start",
  "integrationId": "8qkmnq",
  "data": {
    "status": "CONNECTING",
    "caller": {
      "type": "LOCAL",
      "phone": "1001",
      "name": "admin",
      "company": null,
      "email": "vladimir.gorobets@wildix.com",
      "userId": "1257510555",
      "userExtension": "1001",
      "userDepartment": null,
      "groupId": "62177694",
      "groupName": "Admin",
      "userAgent": "Wildix Zero Distance 4.0.1 WebRTC-f2a0f5f1-6c4e-444f-b99f-a968bb5f7297",
      "userDevice": "COLLABORATION_WEB"
    },
    "callee": null,
    "service": null,
    "destination": "10020",
    "trunkName": null,
    "queueName": null,
    "queueId": null,
    "tags": [],
    "flags": [],
    "endCause": null,
    "endCauseStr": null,
    "endBy": null
  }
}
```

Call update

Code Block
{
  "id": "it_w118741_1693389850.110",
  "pbx": "221100001bab",
  "time": 1693389850810,
  "company": "it_w118741",
  "type": "call:update",
  "integrationId": "8qkmnq",
  "data": {
    "status": "CONNECTING",
    "caller": {
      "type": "LOCAL",
      "phone": "1001",
      "name": "admin",
      "company": null,
      "email": "vladimir.gorobets@wildix.com",
      "userId": "1257510555",
      "userExtension": "1001",
      "userDepartment": null,
      "groupId": "62177694",
      "groupName": "Admin",
      "userAgent": "Wildix Zero Distance 4.0.1 WebRTC-f2a0f5f1-6c4e-444f-b99f-a968bb5f7297",
      "userDevice": "COLLABORATION_WEB"
    },
    "callee": {
      "type": "LOCAL",
      "phone": "10020",
      "name": "user20",
      "company": null,
      "email": "vladimir.gorobets+3@wildix.com",
      "userId": "5753746",
      "userExtension": "10020",
      "userDepartment": null,
      "groupId": "874629312",
      "groupName": "Default",
      "userAgent": null,
      "userDevice": null
    },
    "service": null,
    "destination": "10020",
    "trunkName": null,
    "queueName": null,
    "queueId": null,
    "tags": [],
    "flags": [],
    "endCause": null,
    "endCauseStr": null,
    "endBy": null
  }
}
```

Call end

Code Block{ "id": "it_w118741_1693389850.110", "pbx": "221100001bab", "time": 1693389853611, "company": "it_w118741", "type": "call:end", "integrationId": "8qkmnq", "data": { "status": "CONNECTING", "caller": { "type": "LOCAL", "phone": "1001", "name": "admin", "company": null, "email": "vladimir.gorobets@wildix.com", "userId": "1257510555", "userExtension": "1001", "userDepartment": null, "groupId": "62177694", "groupName": "Admin", "userAgent": "Wildix Zero Distance 4.0.1 WebRTC-f2a0f5f1-6c4e-444f-b99f-a968bb5f7297", "userDevice": "COLLABORATION_WEB" }, "callee": { "type": "LOCAL", "phone": "10020", "name": "user20", "company": null, "email": "vladimir.gorobets+3@wildix.com", "userId": "5753746", "userExtension": "10020", "userDepartment": null, "groupId": "874629312", "groupName": "Default", "userAgent": null, "userDevice": null }, "service": null, "destination": "10020", "trunkName": null, "queueName": null, "queueId": null, "tags": [], "flags": [], "endCause": "21", "endCauseStr": "Call Rejected", "endBy": "CALLER" } } ```

examples

You can find examples of supported event types here: https://docs.wildix.com/docs/calls/webhooks/ (navigate between different sections of the doc, Calls / Conferences/ Presence etc. to view the necessary event examples). 

Use cases

Below you can find some examples of Webhook integration usage:

...