9.3.1.2 Интерфейс конфигурации устройства
Каждый тип устройств (models) может иметь свой особенный веб интерфейс настройки, полностью учитывающий его особенности. Так например, телефоны с дополнительными кнопками могут иметь интерфейс, позволяющий назначать их значение, а более младшие модели иметь только базовые функции.
Интерфейс конфигурации устройства представляет собой текстовый файл, описывающий в формате YAML элементы управления, типы данных, а так же порядок их расположения на странице. Имя этого файла должно совпадать с именем модели устройства, заданной в файле vendors.conf, а расширение файла должно быть .conf. В каждом файле может быть задано произвольное количество элементов управления из шести доступных типов:
header
Этот тип предназначен для логической организации настроек, он вставляет разделитель между различными группами настроек. Пример элемента:
header0: —
name: User accounts
type: header
- В первой строке во всех элементах располагается название, в данном случае header0. Имя должно быть уникальным, так как в последствии именно по этому имени будут извлекаться данные для подстановки в конфигурационный файл;
- name: имя блока, т. е. строка, которая будет выводиться над горизонтальной разделительной линией;
- type: тип, в данном случае header.
text
Этот тип представляет текстовое поле, и предназначен для коротких однострочных текстовых данных, например, поле ввода пароля:
admin_password: —
name: Admin password
type: text
default: admin
- name: отображаемое имя для элемента;
- default: значение поля по умолчанию.
radio
Этот тип представляет набор элементов формы radiobox, т.е. выбор одного значения из списка и имеет дополнительные параметры. Пример использования:
account_ring_tone: —
name: Account Ring Tone
type: radio
default:0
align: vertical
values: —
0: Ring tone 1
1: Ring tone 2
2: Ring tone 3
3: Ring tone 4
- align: Определяет расположение нескольких элементов по высоте (vertical) или по ширине (horizontal, по умолчанию). Например, два значения Yes и No поместятся в одну строку, а значения из примера лучше будут выглядеть при расположении друг под другом;
- values: Массив значений и названий значений соответственно. Названия будут расположены рядом с элементом формы, при этом по-умолчанию будет выбран тот, который указан в опции default.
select
Этот элемент в целом аналогичен предыдущему, за исключением того, что представляет собой html форму select с множеством опций, их которых можно выбрать только одну. Помимо этого у элемента отсутствует опция align. Этот тип предпочтителен, когда имеется очень много опций для выбора, например:
time_zone: —
name: Time Zone
type: select
default:1020
values: —
0 : GMT-12:00 (International Date Line West)
60 : GMT-11:00 (Midway Island, Samoa)
120 : GMT-10:00 (US Hawaiian Time)
…
freepbx_blf
Этот тип элементов предназначен для описания настроек BLF кнопок телефонов, например, так:
blf_user_4: —
name: BLF button 4
type: freepbx_blf
Во время обработки шаблона будет создано две переменные, blf_user_4_name и blf_user_4_num.
freepbx_account
Этот тип элементов предназначен для назначения аккаунта FreePBX и формирует список выбора абонента либо транка. Если в шаблоне нет этого элемента, файл конфигурации не формируется. Пример использования:
freepbx_account_0: —
name: Freepbx Account 0
type: freepbx_account
Во время обработки шаблона из этого элемента будет созданы следующие переменные:
- *_num: Номер абонента, всегда извлекается из БД FreePBX;
- *_name: Имя абонента, всегда извлекается из БД FreePBX;
- *_secret: Пароль SIP аккаунта, всегда извлекается из БД FreePBX;
- server_ip: Адрес сервера телефонии, для указания сервера, на котором регистрироваться устройствам;
- timestamp: Текущее время в формате unixtime, может понадобиться для формирования версии файла конфигурации.
Comments
So empty here ... leave a comment!