Вход по логину и удаленное управление настройками (provisioning)

Поддерживается в версии Softphone.Pro 3.1 и выше

Принцип работы

Используйте Provisioning для централизованного управления пользовательскими настройками Softphone.Pro.

При включенном режиме Provisioning после запуска Softphone.Pro, появляется окно авторизации. В этом окне пользователь вводит свой логин и пароль. Softphone.Pro отправляет данные для авторизации на provisioning-сервер. Если авторизация прошла успешно, то provisioning-сервер возвращает Softphone.Pro файл конфигурации SoftphonePro.ini. Softphone.Pro загружает настройки и сохраняет их на локальном компьютере пользователя в файл SoftphonePro.ini.

Авторизация пользователя в Softphone.Pro

Для обеспечения повышенной безопасности вы можете скрыть от пользователя настройки, полученные от provisioning-сервера, например: реквизиты для подключения к SIP серверу или настройки интеграции с внешней CRM\Helpdesk системой. Для этого используйте в конфигурационном файле, который возвращает provisioning-сервер, специальный раздел [Restrictions].

Далее рассмотрим пример настройки режима Provisioning в паре с тестовым provisioning-сервером, реализованным на PHP.

1. Установите тестовый provisioning-сервер

Скачайте и установите тестовый provisioning-сервер. Код сервера доступен на GitHub.

Для работы тестового provisioning-сервера необходим PHP версии 5.6 и выше. При тестировании использовался Apache 2 c модулем php7.0. Все настройки хранятся в конфигурационных файлах, БД не используется.

В набор PHP скриптов тестового provisionig-сервера входит пример конфигурации с одним пользователем example. Для корректной работы примера укажите общие для всех пользователей SIP настройки в шаблоне templates/sip_account_common.ini и реквизиты для авторизации в configs/example.ini.

2. Настройте учетные записи пользователей в users.xml

Файл users.xml находится в корневой директории серверного PHP приложения и хранит учетные записи пользователей. Создайте учетную запись, укажите логин и пароль пользователя для авторизации в Softphone.Pro. Пароль может быть пустым.

<?xml version="1.0" encoding="UTF-8"?>
<users>
    <user>
        <login>example</login>
        <password>123</password>
    </user>
</users>

3. Создайте конфигурационные файлы для пользователей на provisioning-сервере

В папке configs серверного PHP приложения для каждого пользователя создайте конфигурационный файл [USER].ini, где [USER] - логин пользователя. Файл повторяет настройки пользовательского конфигурационного файла SoftphonePro.ini. Используйте шаблоны для повторяющихся настроек у пользователей.

Файл [USER].ini, который Softphone.Pro получает от provisioing-сервера, имеет более высокий приоритет чем файл SoftphonePro.ini, который хранится на компьютере пользователя. Настройки в SoftphonePro.ini автоматически удаляются и всегда заменяются на настройки из [USER].ini.

Если в файле [USER].ini есть раздел [Restrictions], то соответствующие настройки, полученные от provisioing-сервера, не видны пользователю в окне Настройки и не сохраняются в файл SoftphonePro.ini. Если в файле [USER].ini нет раздела [Restrictions], то полученные от provisioing-сервера настройки будут видны пользователю в окне Настройки и автоматически сохранятся в файл SoftphonePro.ini после выхода из приложения.

4. Создайте конфигурационный файл provisioning.ini на компьютере пользователя

Конфигурационный файл provisioning.ini содержит параметры удаленного управления настройками Softphone.Pro и должен находиться на локальном компьютере пользователя в папке с данными приложения Softphone.Pro:

C:\Users\[WINDOWS-USER]\AppData\Local\SoftphonePro
, где [WINDOWS-USER] - имя пользователя Windows.

Создайте файл provisioning.ini с параметрами:

[Features]
# 0 or 1
ProvisioningEnabled=1
[Urls]
LoginUrl= [APP_URI]/login.php?login=%LOGIN%&password=%PASSWORD_HASH%

, где ProvisioningEnabled - параметр включения/выключения режима Provisioning, LoginUrl - URL-адрес provisioing-сервера, который принимает от Softphone.Pro логин/пароль пользователя и отправляет конфигурационный файл.

Замените [APP_URI] на адрес provisioing-сервера, например:

 http://example.com/provisioning/login.php?login=%LOGIN%&password=%PASSWORD_HASH%

Вместо переменных %LOGIN% и %PASSWORD_HASH% Softphone.Pro автоматически подставляет значения, которые пользователь указывает в окне авторизации: значение поля Логин и MD5 хэш от значения поля Пароль.

Softphone.Pro поддерживает взаимодействие с provisioing-сервером по протоколу HTTPS. Для этого на provisioing-сервере должен быть установлен SSL сертификат, выданный авторизованным центром сертификации.

Вы можете встроить файл конфигурации provisioning.ini в дистрибутив Softphone.Pro. Для этого используйте онлайн сервис для скачивания готового к работе дистрибутива Softphone.Pro.
Перейдите по ссылке и укажите в полях формы:
  • в поле Версия - 5
  • в поле provisioning.ini вставьте содержимое конфигурационного файла provisioning.ini.
Скопируйте ссылку на скачивание настроенного дистрибутива и отправьте её своим пользователям.

5. Авторизация пользователя

Запустите SoftPhone.Pro. Появится диалоговое окно для входа в аккаунт. После успешной авторизации откроется главное окно Softphone.Pro.

Авторизация пользователя в Softphone.Pro

После успешной авторизации в SoftPhone.Pro логин пользователя сохраняется для автоматического заполнения.

Автоматическое заполнение логина пользователя Softphone.Pro

Для автоматического входа в аккаунт SoftPhone.Pro введите данные для авторизации и установите галочку Запомнить меня.

Для смены пользователя нажмите Выйти из аккаунта в главном меню SoftPhone.Pro. Откроется диалоговое окно для входа в аккаунт Softphone.Pro.

Смена пользователя в Softphone.Pro

6. Возможные ошибки при взаимодействии с provisioning-сервером

Если в результате взаимодействия Softphone.Pro и provisioing-сервера произошла ошибка, то она отобразится внизу окна авторизации.

Ошибка при авторизации

Возможные ошибки:

Код Описание
500 Некорректный формат запроса
600 Неправильный логин или пароль
700 Внутренняя ошибка сервиса
701 Отсутствует конфигурация для данного пользователя
702 Ошибка генерации конфигурации
800 - 815 Некорректный формат ответа сервера

7. Шаблоны настроек конфигурации

Используйте шаблоны для повторяющихся настроек в файле [USER].ini. Шаблоны хранятся в папке templates тестового provisioing-сервера.

Чтобы вставить шаблон в файл конфигурации пользователя [USER].ini, используйте:

{% include "template1.ini" %}

Например, в тестовом provisioing-сервере в конфигурации пользователя example используется три шаблона: app_settings.ini , restrictions.ini и sip_account_common.ini .

8. Ограничения настроек (restrictions)

Используйте ограничения (restriction), чтобы скрыть полученные от provisioning-сервера настройки из окна Настройки в Softphone.Pro и не сохранять их в пользовательском файле SoftphonePro.ini.