# Як налаштувати канал телефонії

Налаштуйте канал телефонії для обробки дзвінків клієнтів у ConnectiveOne. Після налаштування дзвінки будуть зберігатися як діалоги в Операторській панелі, де оператори зможуть переглядати історію, прослуховувати записи та переглядати транскрипти.

## Передумови

- Доступ до налаштувань бота в ConnectiveOne
- Доступ до панелі управління провайдера телефонії (Ringostat, Binotel тощо)
- Webhook URL та токен для підключення

## Коли знадобиться

- Потрібно інтегрувати телефонію з ConnectiveOne
- Потрібно зберігати історію дзвінків разом з іншими каналами комунікації
- Потрібно дати операторам доступ до записів та транскриптів дзвінків

## Основні елементи інтерфейсу

- **Канал телефонії** — налаштування для підключення до провайдера телефонії
- **Webhook URL** — адреса, на яку провайдер надсилає події дзвінків
- **Webhook Token** — токен для безпечної верифікації запитів
- **Advanced Config** — JSON конфігурація для маппінгу полів від провайдера
- **Action збагачення webhook** — опційна action для доповнення даних дзвінка перед створенням діалогу
- **Дія при помилці enrich** — що робити, якщо action збагачення webhook завершилася помилкою

## Крок 1: Відкрити налаштування телефонії

1. Перейдіть в **Налаштування** → **Боти**
2. Оберіть потрібного бота
3. Перейдіть на вкладку **Телефонія**

## Крок 2: Створити новий канал

1. Натисніть кнопку **Створити канал**
2. Введіть назву каналу (наприклад, "Основна телефонія")
3. Увімкніть перемикач **Активний**, якщо канал має працювати зараз

## Крок 3: Налаштувати webhook

1. Скопіюйте **Webhook URL** — він генерується автоматично
2. Скопіюйте **Webhook Token** — він також генерується автоматично
3. В панелі провайдера телефонії налаштуйте webhook:
   - Вставте скопійований Webhook URL
   - Додайте токен до URL або налаштуйте верифікацію згідно з документацією провайдера
4. Оберіть формат даних: **JSON** або **Form-urlencoded** (залежить від того, що підтримує провайдер)

## Крок 4: Налаштувати маппінг полів (Advanced Config)

Маппінг полів потрібен для того, щоб система зрозуміла, які поля з webhook провайдера відповідають нашим внутрішнім полям.

1. В розділі **Advanced Config** відкрийте JSON редактор
2. Налаштуйте `field_mapping` — відповідність полів провайдера нашим полям:

```json
{
  "field_mapping": {
    "call_id": "call_id",
    "caller_number": "caller",
    "callee_number": "callee",
    "operator_id": "manager_id",
    "status": "status",
    "duration": "call_duration",
    "recording_url": "recording_url",
    "transcript_text": "transcript"
  }
}
```

**Примітка:** Назви полів залежать від того, як провайдер називає поля в своєму webhook. Перевірте документацію провайдера або використайте preset для Ringostat.

3. Якщо потрібно, налаштуйте маппінг статусів:

```json
{
  "status_mapping": {
    "PROPER": "answered",
    "MISSED": "missed"
  }
}
```

4. Якщо потрібно, налаштуйте маппінг напрямку дзвінка:

```json
{
  "direction_mapping": {
    "in": "in",
    "out": "out"
  }
}
```

## Крок 5: Налаштувати нормалізацію номерів

1. В розділі **Нормалізація номерів** оберіть код країни за замовчуванням (наприклад, `+380` для України)
2. Формат телефону завжди **E.164** — система автоматично нормалізує номери до цього формату

## Крок 6: Збагачення webhook (опційно)

Якщо потрібно підтягнути email оператора, тематику або інші дані з зовнішньої системи (наприклад, Ringostat API):

1. Спочатку налаштуйте action в **Action Jail** (зазвичай разом із командою впровадження)
2. У формі каналу оберіть її в полі **Action збагачення webhook**
3. У полі **Дія при помилці enrich** виберіть, що робити, якщо action не повернула дані:
   - **Не призначати і не запускати автотранскрипцію** — діалог буде створено без призначення оператора; **Автоматична транскрипція** не запуститься для цього дзвінка
   - **Призначити адміністратора і запустити автотранскрипцію** — діалог буде призначено адміністратору за замовчуванням (root admin), після цього може запуститися **Автоматична транскрипція**

Детальна інструкція: [Як налаштувати збагачення webhook](/uk/telephony/how-to/configure-webhook-enrich.md).

## Крок 7: Зберегти та протестувати

1. Натисніть **Зберегти**
2. Натисніть **Тест** для перевірки роботи webhook
3. Перевірте, що тестовий діалог створено успішно

## Додаткові налаштування

### Налаштування записів

Якщо провайдер надає записи дзвінків, налаштуйте в Advanced Config:

```json
{
  "recordings": {
    "enabled": true,
    "download": false
  }
}
```

- `enabled: true` — увімкнути обробку записів
- `download: false` — зберігати тільки URL, не завантажувати файл

### Налаштування транскриптів

Якщо провайдер надає транскрипти дзвінків, налаштуйте в Advanced Config:

```json
{
  "transcription": {
    "enabled": true,
    "source": "provider"
  }
}
```

- `enabled: true` — увімкнути обробку транскриптів
- `source: "provider"` — транскрипт надається провайдером

## Перевірка роботи

Після налаштування перевірте:

1. **Статус каналу** — має бути "Активний"
2. **Тестовий webhook** — має створити тестовий діалог
3. **Реальний дзвінок** — після завершення дзвінка він має з'явитися в Операторській панелі

## Пов'язані статті

- [Налаштувати збагачення webhook](/uk/telephony/how-to/configure-webhook-enrich.md)
- [Налаштувати Ringostat](/uk/telephony/how-to/configure-ringostat.md)
- [Протестувати webhook](/uk/telephony/how-to/test-telephony-webhook.md)
- [Що таке інтеграція телефонії](/uk/telephony/explanation/what-is-telephony-integration.md)
