# Анализ проблем лицензирования

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

> Если проблема именно в системе лицензирования (ошибки регистрации, коды ошибок сервера лицензий, нехватка лицензий), смотрите статью [«Решение проблем с лицензией»](/root-guides/license/problem-solving/). Как рассчитать необходимое количество лицензий — в статье [«Подсчёт необходимого количества лицензий»](/root-guides/license/license-count/).

## Права для работы с телефонией
Пользователь должен быть включён в группу доступа телефонии. <br>
«Звонки и сообщения» → «Настройки» → «Права доступа».

<img class="miko-shadow"
    src="/assets/faq/licensing-troubleshooting/access-groups.png"
    alt="Группы доступа телефонии"
/>

Пользователи должны быть включены в одну из групп. Общее количество разных пользователей в этих группах не должно превышать [количество приобретённых лицензий](/root-guides/license/license-count/).

## Персональные настройки пользователей
«Звонки и сообщения» → «Настройки» → «Персональные настройки».

<img class="miko-shadow"
    src="/assets/faq/licensing-troubleshooting/personal-settings.png"
    alt="Персональные настройки телефонии"
/>

В персональных настройках телефонии включите опцию **«Совершать и принимать звонки в 1С»**.

## Внутренний номер пользователя
«Звонки и сообщения» → «Настройки» → «Настройки подсистемы» → «Параметры конфигурации».

Следует проверить, какой вид контактной информации ассоциируется с внутренним номером:

<img class="miko-shadow"
    src="/assets/faq/licensing-troubleshooting/config-params.png"
    alt="Параметры конфигурации"
/>

В карточке пользователя 1С должен быть указан действительный внутренний номер телефона. Убедитесь, что номер заполнен для нужного вида контактной информации:

<img class="miko-shadow"
    src="/assets/faq/licensing-troubleshooting/user-card.png"
    alt="Внутренний номер в карточке пользователя"
/>

## Доступность АТС
Проверьте, что с рабочего места сотрудника доступна АТС по адресу, указанному в настройках телефонии в 1С.

- [ ] Откройте web-интерфейс АТС в браузере.
- [ ] Выполните ping до адреса сервера с АТС.

Выполните команды в **PowerShell (на клиенте 1С)**:
```powershell
Test-NetConnection -ComputerName 192.168.0.250 -Port 4222
Test-NetConnection -ComputerName 192.168.0.250 -Port 8222
Test-NetConnection -ComputerName 192.168.0.250 -Port 8000
```

Пример результата работы команды:
```
ComputerName     : 192.168.0.250
RemoteAddress    : 192.168.0.250
RemotePort       : 8222
InterfaceAlias   : Ethernet
SourceAddress    : 192.168.0.105
TcpTestSucceeded : True
```

В данном примере `192.168.0.250` — это адрес АТС.

  - **4222** — порт используется, если выбран канал передачи событий «Внешняя компонента»;
  - **8222** — порт мониторинга брокера ивентов на АТС;
  - **8000** — получение истории звонков.

**На сервере 1С:Предприятие** откройте в браузере:
```
http://192.168.0.250:8000/history/latest
```

**Выполните команды в PowerShell (на сервере 1С:Предприятие)**
```
Invoke-RestMethod -Uri "http://192.168.0.250:8000/history/latest" -Method Get
```

Ссылка должна вернуть XML:
```xml
<history><history_record...
```

## Канал передачи событий в 1С
Канал передачи событий определяет, каким способом события о звонках доставляются от АТС до клиента 1С. Подробное описание режимов, примеры схем сети и ограничения — в статье [«Выбор режима соединения»](/root-guides/select-connection-mode/) и в [сравнительной таблице режимов](/root-guides/select-connection-mode/#сравнительная-таблица-режимов).

 - **Веб-сервис** — АТС обращается к опубликованному веб-сервису 1С. Требует [публикации на web-сервере](/faq/base-publishing/) (Apache или IIS) и регистрации базы в 1С:Диалог. Может работать как в тонком клиенте, так и в web-браузере. Контроль настройки подсистемы 1С:Диалог: «Звонки и сообщения» → «Настройки» → «Настройки подсистемы» → **«Перезаполнить идентификатор пользователей»** (все пользователи 1С должны быть зарегистрированы в системе взаимодействия).
 - **Внешняя компонента** — на стороне клиента устанавливается внешняя компонента, которая подключается к АТС. Может работать только в «тонком клиенте» на Windows. Не требует ни публикации веб-сервиса, ни регистрации в 1С:Диалог.
 - **Long-polling** — сервер 1С сам устанавливает постоянное соединение с АТС. Обязательное условие — выполнение регламентного задания **«Онлайн обмен контактными данными»**: если регламентные (фоновые) задания 1С заблокированы, канал работать не будет. Также требует регистрации базы в 1С:Диалог.

<img class="miko-shadow"
    src="/assets/faq/licensing-troubleshooting/connection-scheme.png"
    alt="Схема подключения"
/>

## События в журнале регистрации 1С

Журнал регистрации 1С — основной инструмент диагностики захвата лицензии. По событиям видно, какой пользователь занял лицензию на функцию телефонии и каким каналом он подключён.

> **Фича** — это лицензия на определённую функцию продукта. Чтобы пользователь мог совершать и принимать звонки в 1С, его сеанс должен **захватить фичу** (занять одну лицензию). Если свободных лицензий нет или захват не произошёл, телефония у пользователя работать не будет.

### Событие захвата фичи

**ПТ20_Телефония.call_event** — несёт информацию по захвату фичи:

<img class="miko-shadow"
    src="/assets/faq/licensing-troubleshooting/call-event.png"
    alt="Событие call_event в журнале регистрации"
/>

При подключении через веб-сервисы 1С тело события выглядит так:
```
Subject = provider.v1.calls
{"event":"provider.v1.calls","extension":"201","feature":48,"key":"7fb79f74-26f2-489b-9b2c-8b596375a6e1","subject":"provider.v1.1c.calls","subscription":"feature successfully captured: 48"}
```

### Расшифровка полей события

| Поле | Значение в примере | Что означает |
|------|--------------------|--------------|
| `event` | `provider.v1.calls` | Тип события и канал передачи (см. ниже). |
| `extension` | `201` | Внутренний номер пользователя, для которого захватывается фича. |
| `feature` | `48` | Номер лицензируемой функции (фичи), которую занимает сеанс (см. таблицу ниже). |
| `key` | `7fb79f74-…` | Уникальный идентификатор сеанса/подписки (GUID). По нему можно сопоставить события одного подключения. |
| `subject` | `provider.v1.1c.calls` | Тема (subject) сообщения в шине событий АТС, на которую подписан клиент. |
| `subscription` | `feature successfully captured: 48` | Результат захвата. **`feature successfully captured: 48`** — фича №48 успешно захвачена, лицензия занята. |

### Номера фич

Поле `feature` указывает, лицензию на какую функцию интеграции занимает сеанс:

| `feature` | Лицензия |
|-----------|----------|
| `46` | Интеграция 1С и телефонии **базовая** (сеанс в 1С) |
| `47` | Интеграция 1С и телефонии **базовая** (сеанс во внешней панели) |
| `48` | Интеграция 1С и телефонии **ПРОФ** (полная) (сеанс в 1С) |
| `49` | Интеграция 1С и телефонии **ПРОФ** (полная) (сеанс во внешней панели) |

В примере выше захвачена фича `48` — полная (ПРОФ) версия интеграции для сеанса в 1С. Полный перечень фич и их назначение приведён в статье [«Решение проблем с лицензией»](/root-guides/license/problem-solving/#фичи-и-их-назначение).

Если телефония у пользователя не работает, ищите в этом событии признаки **неуспешного** захвата: отсутствие записи `feature successfully captured`, ошибку нехватки лицензий или сообщение о том, что фича уже занята другим сеансом. Для диагностики самой системы лицензирования (коды ошибок, утилита `licdiag`, монитор сессий `lm.miko.ru`) см. статью [«Решение проблем с лицензией»](/root-guides/license/problem-solving/).

### Различие по каналу передачи событий

Значение поля `event` зависит от того, каким каналом 1С получает события от АТС:

- **Веб-сервисы 1С** — `"event":"provider.v1.calls"`
- **Внешняя компонента** — `"event":"provider.v1.1c.calls"` (меняется только `event`, остальные поля по смыслу те же):

```
"event":"provider.v1.1c.calls"
```

Это помогает на лету определить, по какому каналу реально пришло событие, и сверить его с настройкой подсистемы (раздел [«Канал передачи событий в 1С»](#канал-передачи-событий-в-1с)).
