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!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Sidebar



X

Мы перезвоним Вам
за 30 секунд

Бесплатный звонок