User Advanced Flexible Seating

Allows a user to associate their device profile with a flexible seating host.

Retrieve the user level data associated with flexible seating guest

GET /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/adv_flex_seat/

Retrieve the user level data associated with flexible seating guest.

Authorization rights: minimum End User.

Example request:

GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/adv_flex_seat/ HTTP/1.1
Host: example.com

Example response:

HTTP/1.1 200 OK

{
  "active": true,
  "enableAssociationLimit": true,
  "associationLimitHours": 13,
  "unlockPhonePINCode": "1234",
  "endpoint": {
      "contacts": [],
      "staticRegistrationCapable": false,
      "useDomain": true,
      "linePort": "test_flex_seats_guest2@sip.netaxis.be",
      "lineNumber": 0,
      "pathHeader": ""
  },
  "hostUserId": "ApioGrpTest_fs001@sip.netaxis.be",
  "hostLastName": "Flex Seat 1",
  "hostFirstName": "Flexible Seating Guest",
  "hostAssociationDateTime": "2022-11-14 18:02:14",
  "hostEnforcesAssociationLimit": false,
  "hostAssociationLimitHours": 100
}
Response JSON Object:
  • active (boolean) – Specifies if the flexible seating guest is active.

  • enableAssociationLimit (boolean) – Specifies if to enable the association limit, time limit is defined in associationLimitHours.

  • associationLimitHours (integer) – Specifies the association limit in hours.

  • unlockPhonePINCode (string) – The unlock phone pin code.

  • endpoint (object) – An access device endpoint as defined in Access Device Endpoint for Flexible Seating.

  • hostUserId (string) – The id of the associated host.

  • hostLastName (string) – The last name of the associated host.

  • hostFirstName (string) – The first name of the associated host.

  • hostAssociationDateTime (string) – The association time of the host.

  • hostEnforcesAssociationLimit (boolean) – Specifies if host associated has an association time limit, time limit is defined in hostAssociationLimitHours.

  • hostAssociationLimitHours (integer) – Specifies the actual host association limit in hours.

Status Codes:

Update the user level data associated with flexible seating guest

PUT /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/adv_flex_seat/

Update the user level data associated with flexible seating guest.

Authorization rights: minimum End User.

Example request:

PUT /api/v1/tenants/fooTenant/groups/foogroup/users/foouser/services/adv_flex_seat/ HTTP/1.1
Host: example.com
Content-Type: "application/json"

{
  "active": true,
  "endpoint": {
      "linePort": "test_flex_seats_guest2@sip.netaxis.be"
  },
  "hostUserId": "ApioGrpTest_fs001@sip.netaxis.be",
  "associationLimitHours": 13,
  "unlockPhonePINCode": "1234"
}
Request JSON Object:
  • active (boolean) – Specifies if the flexible seating guest is active.

  • enableAssociationLimit (boolean) – Specifies if to enable the association limit, time limit is defined in associationLimitHours.

  • associationLimitHours (integer) – Specifies the association limit in hours.

  • unlockPhonePINCode (string) – The unlock phone pin code.

  • endpoint (object) – An access device endpoint as defined in Access Device Endpoint for Flexible Seating.

  • hostUserId (string) – The id of the host to be assigned. Note that by assigning an host with a device type that is not of the same type, APIO will automatically delete and recreate the device with a compliant device type.

Example response:

Response:

Similar to GET instance method response.

Status Codes:

Retrieve the list of the available hosts

GET /api/v1/tenants/(string: tenant_id)/groups/(string: group_id)/users/(string: user_id)/services/adv_flex_seat/available_hosts/

Retrieve the list of the available hosts.

Note: this API is not available for End Users, instead they need to use Retrieve the list of the available hosts that provides a more limited set of infos.

Authorization rights: minimum Group Admin.

Example request:

GET /api/v1/fooTenant/groups/foogroup/users/foouser/services/flex_seat/available_hosts/ HTTP/1.1
Host: example.com

{
   "sensitiveUserIdStarts": "Apio"
}
Request JSON Object:
  • sensitiveUserIdStarts (string) – See sensitiveUserIdStarts from Search criteria.

  • sensitiveUserIdContains (string) – See sensitiveUserIdContains from Search criteria.

  • sensitiveUserIdEquals (string) – See sensitiveUserIdEquals from Search criteria.

  • insensitiveUserIdStarts (string) – See insensitiveUserIdStarts from Search criteria.

  • insensitiveUserIdContains (string) – See insensitiveUserIdContains from Search criteria.

  • insensitiveUserIdEquals (string) – See insensitiveUserIdEquals from Search criteria.

  • sensitiveUserLastNameStarts (string) – See sensitiveUserLastNameStarts from Search criteria.

  • sensitiveUserLastNameContains (string) – See sensitiveUserLastNameContains from Search criteria.

  • sensitiveUserLastNameEquals (string) – See sensitiveUserLastNameEquals from Search criteria.

  • insensitiveUserLastNameStarts (string) – See insensitiveUserLastNameStarts from Search criteria.

  • insensitiveUserLastNameContains (string) – See insensitiveUserLastNameContains from Search criteria.

  • insensitiveUserLastNameEquals (string) – See insensitiveUserLastNameEquals from Search criteria.

  • sensitiveUserFirstNameStarts (string) – See sensitiveUserFirstNameStarts from Search criteria.

  • sensitiveUserFirstNameContains (string) – See sensitiveUserFirstNameContains from Search criteria.

  • sensitiveUserFirstNameEquals (string) – See sensitiveUserFirstNameEquals from Search criteria.

  • insensitiveUserFirstNameStarts (string) – See insensitiveUserFirstNameStarts from Search criteria.

  • insensitiveUserFirstNameContains (string) – See insensitiveUserFirstNameContains from Search criteria.

  • insensitiveUserFirstNameEquals (string) – See insensitiveUserFirstNameEquals from Search criteria.

  • insensitiveExtensionStarts (string) – See insensitiveExtensionStarts from Search criteria.

  • insensitiveExtensionContains (string) – See insensitiveExtensionContains from Search criteria.

  • insensitiveExtensionEquals (string) – See insensitiveExtensionEquals from Search criteria.

  • insensitiveDnStarts (string) – See insensitiveDnStarts from Search criteria.

  • insensitiveDnContains (string) – See insensitiveDnContains from Search criteria.

  • insensitiveDnEquals (string) – See insensitiveDnEquals from Search criteria.

  • sensitiveUserDepartmentEquals (string) – See sensitiveDepartmentEquals from Search criteria.

  • responseSizeLimit (integer) – See responseSizeLimit from Search criteria.

Example response:

HTTP/1.1 200 OK

{
  "hosts": [
      {
          "serviceUserId": "ApioGrpTest_fs002@sip.netaxis.be",
          "name": "Flex Seat 2",
          "phoneNumber": "",
          "extension": "9989",
          "department": {
              "tenantId": "ApioSpTest",
              "groupId": "ApioGrpTest",
              "departmentName": "test_department_initial"
          },
          "active": true,
          "language": "English",
          "timeZone": "Europe/Berlin",
          "timeZoneDisplayName": "(GMT+01:00) Europe/Berlin",
          "cliLastName": "Test",
          "cliFirstName": "Flex Seat 2",
          "publicUserIdentity": "",
          "aliases": [],
          "defaultAlias": "ApioGrpTest_fs002@sip.netaxis.be",
          "endpoint": {
              "accessDevice": {
                  "name": "dp_ApioGrpTest_fs4037",
                  "level": "Group"
              },
              "contacts": [],
              "staticRegistrationCapable": false,
              "useDomain": true,
              "linePort": "test_flex_seat2@sip.netaxis.be",
              "lineNumber": 0,
              "pathHeader": ""
          },
          "networkClassOfService": "1",
          "guestInfo": {
              "enforceAssociationLimit": true,
              "associationLimitHours": 24,
              "accessLevel": "Group"
          }
      }
  ]
}
Response JSON Object:
Status Codes:

Configuration Information for Advanced Flexible Seating

In the PUT API, when assigning a flexible seating host, it is possible to configure APIO to generate automatically the access device name according to specific rules.

The APIO behaviour for the Flexible Seating automatic access device name generation is controlled by the following setting:

"AUTOMATIC_ID_RULES": {
    "FLEX_SEAT_DEVICE_NAME_RULE": "dp_{{group_id}}_fs{{RND_4}}",
     "GENERIC_DEVICE_NAME_RULE": "DP_{{RND_36}}"
}
"DEVICE_NAME_MAX_LENGTH": 40
Settings description:
  • FLEX_SEAT_DEVICE_NAME_RULE: the formatting rule for the auto-generation of the access device name of the host. Default is “dp_{{group_id}}_fs{{RND_4}}”.

  • DEVICE_NAME_MAX_LENGTH: the maximum length for the access device name of the host. The default value is 40 and if set to 0 no length check is performed

  • GENERIC_DEVICE_NAME_RULE: a generic fallback auto-generation rule. This rule is used only when the device name of the host excedes DEVICE_NAME_MAX_LENGTH