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

Поддерживается только в версии 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 сертификат, выданный авторизованным центром сертификации.

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

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

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

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

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

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

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

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

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

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

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

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

{% include "template1.ini" %}

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

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

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