Phone model templates for autoprovision (ap_templates)

Overview

Provides access to template files for autoprovisioning.

The directory is located in the category of automatically synchronized directories :SYNC.

During the autoprovision service, a private configuration is created based on a template (by phone model or phone brand)). This catalog is where the templates are located. The search is done in the following order: <Brand Model>.cfg, <brand Model>.cfg, <Brand>.cfg, <brand>.cfg. There can be mutual references within the templates. The substitution of parameters into a template is done in depth until the result is a complete configuration format. It is important to avoid loops.

Each time the ap role is restarted, sample configurations are copied to the directory if the corresponding files are not present in the directory at the moment.

Requests

HTTP verb Endpoint Description

POST

/rest/v1/fs/targets/ap_templates

Pouring a group of files

GET

/rest/v1/fs/targets/ap_templates

Getting a list of files

GET

/rest/v1/fs/targets/ap_templates/<filename>

File download

PUT

/rest/v1/fs/targets/ap_templates/<filename>

Reloading an existing file

DELETE

/rest/v1/fs/targets/ap_templates/<filename>

Deleting a file

HEAD

/rest/v1/fs/targets/ap_templates/<filename>

Getting meta-information about a file


Pouring a group of files

Uploading to the collection is done by Content-Type: multipart/formdata.

There can be one or more files in the request. The files are placed under the names specified in the Content-Disposition headers of each part.

If a file with the specified name already exists, it is not saved and returns an error. Depending on the Content-Type and the presence of successfully placed files, the request may return a failed HTTP response, or failure information in the body of the HTTP response 200 OK.

Request

Request example
POST /rest/v1/fs/targets/ap_templates HTTP/1.1
Content-Type: multipart/form-data; boundary=-----------boundary_69df8120352a996e

-----------boundary_69df8120352a996e
Content-Type: application/octet-stream
Content-Disposition: form-data; name="filename"; filename="Yealink SIP-T30P.cfg"
Content-Transfer-Encoding: binary

BINARY BODY OF 'Yealink SIP-T30P.cfg'
-----------boundary_69df8120352a996e--

Response

Response example
[
  {
    "name": "index.html",
    "size": 60506,
    "status": "ok"
  }
]

Getting a list of files

Request

Table 1. Request parameters
Name Type Description

filter

object

Filter by field values.

mask

str

List of fields to output. Available fields for output: name, size, last_modified.

offset

int

Offset in the list of files to be issued.

limit

int

Maximum number of files in the list.

order

array<object|str>

The sort order of the files in the list.

Request example
GET /rest/v1/fs/targets/ap_templates HTTP/1.1

Response

Response example
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
  {
    "name": "Yealink.cfg",
    "size": 2020,
    "last_modified": "2022-01-14 03:10:05"
  },
  {
    "name": "Yealink SIP-T46U.cfg",
    "size": 2381,
    "last_modified": "2022-01-14 03:27:55"
  }
]

File download

Request

Table 2. Request parameters
Name Type Description

attachment

bool

Issuance Type. Default false.

true – is output with the header Content-Disposition: attachment; filename=filename.ext or Content-Disposition: attachment; filename*=UTF-8''%d1%84%d0%b0%d0%b9%d0%bb.ext, where file.ext is the file name in UTF-8 encoding and URLencoded.

false – untitled Content-Disposition.

Request example
GET /rest/v1/fs/targets/ap_templates/Yealink SIP-T30P.cfg?attachment=true HTTP/1.1

Response

Response example
HTTP/1.1 200 OK
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment; filename*=UTF-8''Yealink%20SIP-T30P.wav

BINARY BODY OF 'Yealink SIP-T30P.cfg'

Reloading an existing file

Performs a file replacement.

A single file is uploaded either with Content-Type: multipart/formdata, or with an arbitrary Content-Type that is not multipart.

If the download is done with Content-Type: multipart/formdata, then only the first file will be saved (the first part with the filename field in the header) Content-Disposition), and the file name itself will be ignored.

Request

Request example (octet-stream)
PUT /rest/v1/fs/targets/ap_templates/Yealink SIP-T30P.cfg HTTP/1.1
Content-Type: application/octet-stream

BINARY BODY OF 'Yealink SIP-T30P.cfg'
Request example (multipart)
PUT /rest/v1/fs/targets/ap_templates/Yealink SIP-T30P.cfg HTTP/1.1
Content-Type: multipart/form-data; boundary=-----------boundary_69df8120352a996e

-----------boundary_69df8120352a996e
Content-Type: application/octet-stream
Content-Disposition: form-data; name="Yealink SIP-T30P.cfg"; filename="Yealink SIP-T30P.cfg"
Content-Transfer-Encoding: binary

BINARY BODY OF 'Yealink SIP-T30P.cfg'
-----------boundary_69df8120352a996e--

Response

Response example
HTTP/1.1 204 No Content

Deleting a file

Request

Request example
DELETE /rest/v1/fs/targets/ap_templates/Yealink SIP-T30P.cfg HTTP/1.1

Response

Response example
HTTP/1.1 204 No Content

Getting meta-information about a file

Returns meta-information about the file, including the size in the header Content-Length.

Features

  • HTTP-the response does not contain a body, despite the presence of a header Content-Length.

Request

Table 3. Request parameters
Name Type Description

attachment

bool

Issuance Type. Default false.

true – is output with the header Content-Disposition: attachment; filename=filename.ext or Content-Disposition: attachment; filename*=UTF-8''%d1%84%d0%b0%d0%b9%d0%bb.ext, where file.ext is the file name in UTF-8 encoding and URLencoded.

false – untitled Content-Disposition.

Request example
HEAD /rest/v1/fs/targets/ap_templates/Yealink SIP-T30P.cfg?attachment=true HTTP/1.1

Response

Example of a successful response
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Last-Modified: Fri, 14 Jan 2022 00:00:12 GMT 2022-01-14 00:10:05
Content-Disposition: attachment; filename=Yealink.cfg
Content-Length: 2020
Example of an unsuccessful response
HTTP/1.1 404 Not Found

See also