Описание
Данный сервис позволяет поддерживать удаленную книгу Yealink, GrandStream, которую возможно получать либо из базы абонентов SSW (по http), либо по протоколу ldap, либо с адресной книги ECSS-10 (используя mysql).
На текущий момент:
- Из базы абонентов ssw можно получить: имя и номер;
- По протоколу ldap можно получить: имя, номер, почту;
- Используя mysql: имя, номер, почту.
Установка
При установке restfs у пользователя спрашиваются следующие вопросы:
- Необходимо ли настроить телефонную книгу?
- Да - Далее задаются вопросы по каждому сервису телефонной книги;
- Нет - используются параметры по умолчанию для работы с локальными сервисами.
- Настроить LDAP-книгу?
- Да - задаются вопросы по необходимым полям;
- Нет - по умолчанию.
- LDAP_BN - логин в формате LDAP для подключения к серверу с LDAP (например, "cn=admin,dc=eltex,dc=com", если сервер находится по доменному имени eltex.com, а "admin" - это пользователь. Примечание: вводить без ковычек);
- LDAP_PASS - пароль для пользователя LDAP_BN;
- LDAP_DOMAIN - домен, в котором находятся записи о пользователях (например, "ou=users,dc=eltex,dc=com", найти всех пользователей в группе users. Вводить без ковычек);
- LDAP_SERVER - адрес сервера;
- LDAP_ATTR - запрашиваемые атрибуты (например, чтобы получить телефон, почту и выводимое имя: '"mail", "telephoneNumber", "displayName"'. Вводить без одинарных ковычек, но каждый артибут в ковычках).
- Настроить SSW-книгу?
- Да - задаются вопросы по необходимым полям;
- Нет - используются настройки по умолчанию для работы с локальным SSW.
- SSW_PROTO - протокол передачи (http, https);
- SSW_SERVER - адрес сервера SSW;
- SSW_LOGIN - логин;
- SSW_PASS - пароль;
- SSW_DOMAIN - домен, из которого необходимо получить контакты;
- SSW_LIMIT - число контактов, запрашиваемых по умолчанию;
- Настроить MYSQL-книгу
- Да - задаются вопросы по необходимым полям;
- Нет - используются параметры по умолчанию для работы с локальной базой данных.
- MYSQL_SERVER - адрес базы данных;
- MYSQL_PORT - порт, на котором работает база данных;
- MYSQL_LOGIN - логин;
- MYSQL_PASS - пароль;
- MYSQL_DB - название базы данных;
- MYSQL_LIMIT - количество контактов, запрашиваемых по умолчаниию.
Настройка
Для того, чтобы настроить необходимый сервис нужно сконфигурировать /etc/ecss/ecss-restfs/card-settings.json. Настройка каждого сервиса находится в соответствующей секции.
SSW
Блок кода | ||
---|---|---|
| ||
"ssw": { "protocol": "%%SSW_PROTO%%", // протокол http или https "server": "%%SSW_SERVER%%", // адрес сервера "user": "%%SSW_LOGIN%%", // логин "password": "%%SSW_PASS%%", // пароль "domain": "%%SSW_DOMAIN%%", // домен, из которого необходимо получить данные "limit": "%%SSW_LIMIT%%" // максимальное количество контактов, которое нужно получить } |
...
Также возможно изменять данные настройки в запросе, например: http://restfs:9995/ssw?user=admin&password=superpass&domain=example.eltex.local
LDAP
Блок кода | ||
---|---|---|
| ||
"ldap": { "base_name": "%%LDAP_BN%%", // имя в формате ldap для логина "password": "%%LDAP_PASS%%", // пароль "domain": "%%LDAP_DOMAIN%%", // домен в формате ldap "server": "%%LDAP_SERVER%%", // адрес сервера с ldap "attrs": ["%%LDAP_ATTR%%"], // запрашиваемые атрибуты (имя, почта, номер) "scope": "subtree" // способ обхода при запросе } |
...
Также можно переопределять параметры при запросе
http://restfs:9995/ldap?attrs=mail,displayName&base_name=cn=user,dc=eltex,dc=local
MYSQL
Блок кода | ||
---|---|---|
| ||
"mysql": { "server": "%%MYSQL_SERVER%%", // сервер mysql, где лежит база данных с контактами "port": "%%MYSQL_PORT%%", // порт "user": "%%MYSQL_LOGIN%%", // пользователь, под которым необходимо войти "password": "%%MYSQL_PASS%%", // пароль "db": "%%MYSQL_DB%%", // база данных, удовлетворяющая следующей структуре "procedure": "getContactBook", "limit": "%%MYSQL_LIMIT%%", "offset": "0" // смещение от начала в отсортированной базе данных по contact.id } |
Аналогично можно переопределять в аргументах url необходимые поля.
Шаблоны
Шаблоны находятся в /etc/ecss/ecss-restfs/template.
...
Если шаблон не обнаружен, то возвращается имя шаблона.
Параметры
Выгрузка из ssw|mysql|ldap в форматах template или carddav.
URL
- http://book.restfs.ecss:9990 - получить телефонную книгу, по умолчанию сервис книги берётся из конфигураций.
- http://book.restfs.ecss:9990/book - carddav, сервис по умолчанию берётся из конфигураций.
- http://book.restfs.ecss:9990/book/(ssw|ldap|mysql) - carddav с использованием определенного сервиса.
- http://system.restfs.ecss:9990/(ssw|ldap|mysql)?host=book - получить телефонную книгу из определенного сервиса.
Параметры
- name_len - максимальная длина имени: number > 0
- skip_no_disp - Пропускать записи без имени: true|false
- translit - использовать транслит: true|false
- user_agent - задать имя клиента(игнорирование заголовка User agent): str
- limit - ограничение на количество записей: number > 0
Использование
- Для того, чтобы получить книгу, нужно указать следующий url: "http://<ADDRESS>[:<PORT]/<NAME_SERVICE>[?<NAME_ARG>[&NAME_ARG2]...]"
- <ADDRESS> - адрес restfs;
- <PORT> - опционально, должен быть 9995;
- <NAME_SERVICE> - имя сервиса (mysql, ssw, ldap);
- <NAME_ARG> - аргументы для запроса, соответствует полю из конфига(например, "...?base_name=cn=example,dc=com&attrs=mail,displayName")
- При не настроенном сервисе - код возврата 502
Пример настройки для телефона Cisco 88XX/79XX
Для настройки удаленной книги cisco нужно в конфигурацию (SEPxxxxxxxxxx.cnf.xml или XMLDefault.xnf.xml) автопровижена добавить следующее:
...