Начиная с версии 3.14.5 в рамках ECSS-10 реализован механизм, позволяющий на уровне лицензии ограничивать услуги, доступные пользователям ECSS-10, а так же их количество.

Кроме того, для существующих заказчиков, сделана обратная совместимость, т.е. если на уровне лицензии не включено лицензирование услуг — то на ECSS-10 работа с услугами останется прежней. Данный механизм лицензирования услуг мы назвали «Лицензирование услуг на основе пакетов».  

Лицензионный пакет услуг (далее просто пакет услуг) — идентифицируется именем пакета, состоит из:

Каждая лицензия на услуги из пакета позволяет пользователю, владеющему данной лицензией, пользоваться любой услугой из данного пакета. 

Одна лицензия ECSS-10 может содержать несколько лицензионных пакетов услуг. При этом, услуги в пакетах могут повторяться. «Лицензии услуг» изначально (после добавления лицензии) доступны всем абонентам софтсвича, без явной привязки к доменам. Но если администратору софтсвича необходимо явно выделить часть лицензий из лицензионного пакета услуг в определенный домен — он может это сделать через настройки «ограничений домена». В этом случае, выделенные лицензии смогут занимать только абоненты данного домена.

Если на уровне лицензии включен механизм лицензирования услуг, то абонентам активация/разрешение на услугу будет доступны только в том случае, если услуга входит в один из лицензионных пакетов услуг, закрепленных за данным абонентом.


Тезисы, описывающие лицензирование услуг

Команды управления лицензиями пакетов услуг


Выделить часть лицензий пакетов услуг на домен

Путь команды:

/domain/<DOMAIN>/properties/restrictions/set ss_package

Синтаксис:

domain/<DOMAIN>/properties/restrictions/set ss_package <LICENCE_SS_PACKAGE> <LICENCE_COUNT>

Параметры:

Пример:

domain/p.city/properties/restrictions/set ss_package ECSS-GEN 5
Restriction ss_package set to ECSS-GEN: 5.

domain/p.city/properties/restrictions/set ss_package ECSS-ADV 15
Error: New value for limit more than licence limit ss package ECSS-ADV on 5 counts.

domain/p.city/properties/restrictions/set ss_package ECSS-EMPTY 5
Command error: Package ECSS-EMPTY not found.

Просмотреть выделенные на домен пакеты услуг

Путь команды:

domain/<DOMAIN>/properties/restrictions/info

Синтаксис:

domain/<DOMAIN>/properties/restrictions/info

Параметры:

Пример:

domain/p.city/properties/restrictions/info
┌────────────────────────────────┬──────────────┬────────────────────────────────────────────────────────────────┐
│          Restriction           │    Value     │                          Description                           │
├────────────────────────────────┼──────────────┼────────────────────────────────────────────────────────────────┤
...
│ss_package                      │ECSS-ADV+ : 8 │Count of licence from ss package in current domain              │
│                                │ECSS-ADV : 10 │                                                                │
│                                │ECSS-BAS+ : 10│                                                                │
│                                │ECSS-BAS : 10 │                                                                │
│                                │ECSS-GEN : 5  │                                                                │
...
└────────────────────────────────┴──────────────┴────────────────────────────────────────────────────────────────┘

Забрать часть лицензий пакетов услуг с определенного домена

Путь команды:

domain/<DOMAIN>/properties/restrictions/clean ss_package

Синтаксис:

domain/<DOMAIN>/properties/restrictions/clean ss_package <LICENCE_SS_PACKAGE>

Параметры:

Пример:

domain/p.city/properties/restrictions/clean ss_package ECSS-GEN
Restriction ss_package was unset.

Выделение лицензии на пакет услуг абоненту

Путь команды:

/domain/<DOMAIN>/ss/licence/allocate

Синтаксис:

/domain/<DOMAIN>/ss/licence/allocate <ADDRESS_RANGE> <LICENCE_SS_PACKAGE> [--priority]

Параметры:

Пример:

/domain/p.city/ss/licence/allocate 72{0-5} ECSS-ADV

Licence package ECSS-ADV successfully allocated.

Отозвать лицензии на пакет услуг у абонентов

Путь команды:

/domain/<DOMAIN>/ss/licence/free

Синтаксис:

/domain/<DOMAIN>/ss/licence/free <ADDRESS_RANGE> <LICENCE_SS_PACKAGE>

Параметры:

Пример:

/domain/p.city/ss/licence/free 72{0-5} ECSS-ADV

Licence package ECSS-ADV successfully free on subscribers.

Просмотр распределенных/использованных лицензий на пакеты услуг

Путь команды:

/domain/<DOMAIN>/ss/limit

cluster/storage/<DS_CLUSTER>/ss/limit

Синтаксис:

/domain/<DOMAIN>/ss/limit [<OPTIONS>]

cluster/storage/<DS_CLUSTER>/ss/limit [<OPTIONS>]

Параметры:

Пример выполнения команды для домена:

domain/p.city/ss/limit
┌─────────┬────────────┬──────────────────────────┐
│  Name   │    Used    │       Description        │
├─────────┼────────────┼──────────────────────────┤
│ECSS-GEN │2 / infinity│Стандартные услуги (РД 45)│
│ECSS-BAS │9 / 10      │Базовые услуги (РД 45)    │
│ECSS-BAS+│10 / 10     │Расширение базовых услуг  │
│ECSS-ADV │10 / 10     │Дополнительные услуги     │
│ECSS-ADV+│8 / 8       │Дополнительные услуги     │
└─────────┴────────────┴──────────────────────────┘
Legend:
  Used: UsedLicence / AvailableLicence

domain/p.city/ss/limit --show-aliases --show-ss
┌─────────┬────────────┬──────────────────────────┬───────┬─────────────────────────┐
│  Name   │    Used    │       Description        │Aliases│         SS List         │
├─────────┼────────────┼──────────────────────────┼───────┼─────────────────────────┤
│ECSS-GEN │2 / infinity│Стандартные услуги (РД 45)│    721│cc_agent                 │
│         │            │                          │    725│cfb                      │
│         │            │                          │       │cfnr                     │
│         │            │                          │       │cfos                     │
│         │            │                          │       │cfu                      │
│         │            │                          │       │chold                    │
│         │            │                          │       │clip                     │
│         │            │                          │       │cnip                     │
│         │            │                          │       │ctr                      │
│         │            │                          │       │cw                       │
│         │            │                          │       │direct_call              │
│         │            │                          │       │mcid                     │
│         │            │                          │       │qsig_cfb                 │
│         │            │                          │       │qsig_cfnr                │
│         │            │                          │       │qsig_cfu                 │
│         │            │                          │       │teleconference           │
│         │            │                          │       │teleconference_manager   │
│         │            │                          │       │tsmn_request             │
...
│ECSS-ADV+│8 / 8       │Дополнительные услуги     │720-727│assistant                │
│         │            │                          │       │avatar                   │
│         │            │                          │       │boss_group               │
│         │            │                          │       │cpip                     │
│         │            │                          │       │distinctive_picture      │
│         │            │                          │       │distinctive_ring         │
│         │            │                          │       │flexicall                │
│         │            │                          │       │fxo_trunk                │
│         │            │                          │       │intervention             │
│         │            │                          │       │introduce                │
│         │            │                          │       │message                  │
│         │            │                          │       │multicast_listen         │
│         │            │                          │       │multicast_page           │
│         │            │                          │       │personal_ivr             │
│         │            │                          │       │privacy                  │
│         │            │                          │       │remote_phone             │
│         │            │                          │       │remote_ring              │
│         │            │                          │       │smart_cancel             │
│         │            │                          │       │voice_page               │
│         │            │                          │       │voice_page_control       │
│         │            │                          │       │walkie_talkie            │
│         │            │                          │       │zone_page                │
└─────────┴────────────┴──────────────────────────┴───────┴─────────────────────────┘
Legend:
  Used: UsedLicence / AvailableLicence

Пример выполнения команды для кластера:

cluster/storage/ds1/ss/limit
┌─────────┬───────┬─────────────┬──────────────────────────┐
│  Name   │ Used  │   Domain    │       Description        │
│         │       │pre-allocated│                          │
├─────────┼───────┼─────────────┼──────────────────────────┤
│ECSS-GEN │3 / 15 │            5│Стандартные услуги (РД 45)│
│ECSS-BAS │9 / 15 │           10│Базовые услуги (РД 45)    │
│ECSS-BAS+│10 / 15│           10│Расширение базовых услуг  │
│ECSS-ADV │10 / 10│           10│Дополнительные услуги     │
│ECSS-ADV+│9 / 12 │           12│Дополнительные услуги     │
└─────────┴───────┴─────────────┴──────────────────────────┘
Legend:
  Used: UsedLicence / AvailableLicence

cluster/storage/ds1/ss/limit --show-aliases
┌─────────┬───────┬─────────────┬──────────────────────────┬────────┬────────┐
│  Name   │ Used  │   Domain    │       Description        │Aliases │Priority│
│         │       │pre-allocated│                          │        │Aliases │
├─────────┼───────┼─────────────┼──────────────────────────┼────────┼────────┤
│ECSS-GEN │3 / 15 │            5│Стандартные услуги (РД 45)│d.city: │        │
│         │       │             │                          │     800│        │
│         │       │             │                          │p.city: │        │
│         │       │             │                          │     721│        │
│         │       │             │                          │     725│        │
│ECSS-BAS │9 / 15 │           10│Базовые услуги (РД 45)    │p.city: │        │
│         │       │             │                          │ 721-729│        │
│ECSS-BAS+│10 / 15│           10│Расширение базовых услуг  │p.city: │        │
│         │       │             │                          │ 720-729│        │
│ECSS-ADV │10 / 10│           10│Дополнительные услуги     │p.city: │        │
│         │       │             │                          │ 720-729│        │
│ECSS-ADV+│9 / 12 │           12│Дополнительные услуги     │p.city: │d.city: │
│         │       │             │                          │ 720-727│     800│
└─────────┴───────┴─────────────┴──────────────────────────┴────────┴────────┘
Legend:
  Used: UsedLicence / AvailableLicence

Пример настройки услуг для абонента

Смотрим список лицензионных пакетов услуг и ищем среди них тот пакет, в котором есть интересующая нас услуга:

antoniy@[ds1@ecss1#ECSS-D-MECHANIC]:/$ domain/p.city/ss/limit --show-ss
┌─────────┬────────────┬──────────────────────────┬─────────────────────────┐
│  Name   │    Used    │       Description        │         SS List         │
├─────────┼────────────┼──────────────────────────┼─────────────────────────┤
│ECSS-GEN │2 / infinity│Стандартные услуги (РД 45)│cc_agent                 │
│         │            │                          │cfb                      │
│         │            │                          │cfnr                     │
│         │            │                          │cfos                     │
│         │            │                          │cfu                      │
│         │            │                          │chold                    │
│         │            │                          │clip                     │
│         │            │                          │cnip                     │
│         │            │                          │ctr                      │
│         │            │                          │cw                       │
│         │            │                          │direct_call              │
│         │            │                          │mcid                     │
│         │            │                          │qsig_cfb                 │
│         │            │                          │qsig_cfnr                │
│         │            │                          │qsig_cfu                 │
│         │            │                          │teleconference           │
│         │            │                          │teleconference_manager   │
│         │            │                          │tsmn_request             │
│ECSS-BAS │9 / 10      │Базовые услуги (РД 45)    │3way                     │
│         │            │                          │cfnr_type2               │
│         │            │                          │cfu_type2                │
│         │            │                          │clir                     │
│         │            │                          │cliro                    │
│         │            │                          │dnd                      │
│         │            │                          │ml                       │
│         │            │                          │pickup                   │
│         │            │                          │redial                   │
└─────────┴────────────┴──────────────────────────┴─────────────────────────┘

Выделяем найденный пакет услуг абоненту

domain/p.city/ss/licence/allocate 725 ECSS-GEN
Licence package ECSS-GEN successfully allocated.

Теперь абонент может пользоваться любыми услугами в рамках пакета ECSS-GEN (в случае, если администратор домена разрешит (enable) пользоваться этими услугами)

Деградация лицензии

Бывают ситуации, когда вновь добавленная лицензия будет иметь меньшее количество лицензий в рамках определенного пакета услуг, чем было раньше. Либо, ещё вариант — у клиента была временная лицензия с пакетами услуг и она истекла. В этом случае вступает в работу механизм по деградации лицензии.

В рамках лицензирования пакетов услуг задача механизма по деградации лицензии узнать:

Если количество лицензий, доступных в рамках текущей лицензии, меньше, чем количество лицензий, предоставленных абонентам ECSS-10, задача механизма — заблокировать лишние лицензии у части абонентов так, чтобы свести баланс в ноль (при этом, если в будущем лицензии на пакеты услуг снова появятся — блокировка будет снята).

Для этого, при выделении лицензии услуг, на абонента фиксируется время, в которое она была выдана. И при деградации лицензии, лицензии на пакеты услуг начинают блокироваться в первую очередь у тех, кому они были розданы в последнюю очередь.

  1. Компания приобрела пакет услуги A на 10 лицензий;
  2. После чего приобрела еще 10 дополнительных временных лицензий услуги А;
  3. Администратор системы назначил лицензии только 15-ти абонентам;
  4. Дополнительная лицензия истекла — услуга А блокируется у 5 последних абонентов, которым она была назначена;
  5. После покупки недостающих лицензий для абонентов — услуга автоматически становится доступной.

От данного правила есть одно исключение: иногда необходимо сделать так, чтобы лицензию на услугу абоненту Х дали последнему, но она должна блокироваться в последнюю очередь (например, VIP абоненту поздно выделили лицензии на услугу). Для этого был введен механизм приоритетной выдачи лицензии.

Таким образом, когда администратор домена выделяет лицензию на своего абонента, он может так же добавить пометку «приоритетная лицензия», и в этом случае лицензия у данного абонента будет блокироваться в последнюю очередь. 

Если в системе больше одного приоритетного абонента и у всех обычных абонентов лицензии уже были заблокированы, то блокировка лицензий у приоритетных абонентов будет осуществляться так же в режиме «кому последнему выделили лицензию, у того первого она будет заблокирована»).


В правильно спланированной системе, где только коммерческие лицензии, механизм деградации лицензий применяться не будет.