Перейти к основному содержимому

Телефония и SIP

Голосовые агенты могут принимать и совершать телефонные звонки через SIP-интеграцию. Это позволяет подключить AI-агента к реальным телефонным линиям для автоматизации call-центра, обработки входящих звонков и проведения исходящих кампаний. Подробнее о конфигурации см. в разделе Телефония и SIP.

Архитектура телефонии

Телефонная интеграция построена на базе LiveKit SIP Bridge:

Телефон → [SIP-провайдер] → [SIP-транк] → [LiveKit SIP Bridge] → [Voice Agent]

Для работы телефонии необходимо настроить:

  1. SIP-транки -- подключения к SIP-провайдерам
  2. Правила маршрутизации (Dispatch Rules) -- определяют, какой агент обрабатывает звонок
  3. Телефонные номера -- номера, привязанные к агентам

SIP-транки

SIP-транк -- это подключение к телефонному провайдеру, через которое проходят голосовые звонки.

Входящие транки (Inbound)

Входящие транки принимают звонки из телефонной сети.

ПараметрОписание
NameНазвание транка для идентификации
NumbersТелефонные номера в формате E.164 (например, +15551234567)
Allowed AddressesСписок разрешённых IP-адресов / CIDR для фильтрации (белый список)
Media EncryptionШифрование медиа: Disabled, Require, Prefer
HeadersПередача SIP-заголовков: None, All, X-Headers
Krisp EnabledВключить шумоподавление Krisp на входящем аудио

Исходящие транки (Outbound)

Исходящие транки используются для совершения звонков из системы.

ПараметрОписание
NameНазвание транка
AddressАдрес SIP-сервера (IP или hostname)
NumbersИсходящие номера в формате E.164
TransportТранспортный протокол: Auto, UDP, TCP, TLS
Media EncryptionШифрование медиа
Auth UsernameИмя пользователя для аутентификации
Auth PasswordПароль для аутентификации
Важно

Номера телефонов должны быть в формате E.164: знак +, код страны, номер без пробелов и дефисов. Пример: +14155551234.

Подробнее

Смотрите полную настройку SIP-транков и правил маршрутизации в разделе интеграций.


Правила маршрутизации (Dispatch Rules)

Правила маршрутизации определяют, как входящие SIP-звонки направляются к голосовым агентам.

Параметры правила

ПараметрОписание
NameНазвание правила
Rule TypeТип маршрутизации: Room (в комнату), Individual (индивидуальная), Direct (прямая)
Room PrefixПрефикс для имени комнаты LiveKit
Agent IDID голосового агента, который будет обрабатывать звонок
Trunk IDsФильтр по конкретным SIP-транкам (опционально)
Phone NumbersФильтр по номерам телефонов (опционально)
Hide Phone NumberСкрыть номер звонящего

Типы маршрутизации

  • Room -- каждый звонок создаёт отдельную комнату LiveKit с указанным префиксом. Это стандартный режим для большинства сценариев.
  • Individual -- каждый звонок получает индивидуальную комнату
  • Direct -- прямая маршрутизация в конкретную комнату

Пример настройки

Для маршрутизации всех звонков на номер +15551234567 к агенту поддержки:

  1. Создайте входящий SIP-транк с номером +15551234567
  2. Создайте правило маршрутизации:
    • Rule Type: Room
    • Agent ID: ID вашего голосового агента
    • Phone Numbers: +15551234567

Телефонные номера

Вкладка Номера в разделе "Голосовые агенты" позволяет управлять телефонными номерами, привязанными к агентам.

Добавление номера

Для добавления номера нажмите Добавить номер и заполните:

ПолеОписаниеОбязательное
Номер телефонаНомер в формате E.164 (например, +15551234567)Да
НазваниеПонятное название для номера (например, "Линия поддержки")Нет
ПровайдерТелефонный провайдер (Twilio, Vonage)Да
АгентГолосовой агент, обрабатывающий звонки на этот номерНет

Управление номерами

В таблице номеров отображаются:

  • Номер -- телефонный номер
  • Название -- дружественное имя
  • Провайдер -- SIP-провайдер
  • Агент -- привязанный голосовой агент (или "Не назначен")
  • Статус -- активен / неактивен, верифицирован

Доступные действия (через контекстное меню):

  • Копировать номер
  • Редактировать
  • Удалить

Исходящие звонки

Платформа поддерживает инициирование исходящих звонков через API.

Параметры исходящего звонка

ПараметрОписание
phone_numberНомер для звонка (E.164)
agent_idID голосового агента
trunk_idID исходящего SIP-транка (опционально, выбирается автоматически)
caller_idНомер, отображаемый у вызываемого абонента
room_nameИмя комнаты LiveKit (генерируется автоматически)

Определение автоответчика (AMD)

При исходящих звонках автоматически запускается Answering Machine Detection (AMD) -- определение, ответил ли живой человек или автоответчик.

AMD работает следующим образом:

  1. Собирает первые ~5 секунд транскрипции после ответа
  2. Отправляет текст на классификацию с помощью LLM
  3. Определяет тип ответа: human (человек), voicemail (автоответчик), ivr (голосовое меню)
  4. Если определён автоответчик или IVR -- звонок автоматически завершается
Fail-Open

AMD работает по принципу "fail-open": при любых ошибках (нет транскрипции, ошибка LLM) система считает ответ человеческим. Это гарантирует, что живые люди не будут сброшены из-за ошибок определения.

Ожидание ответа

При исходящем звонке агент не начинает говорить сразу. Вместо этого:

  1. Ожидает появления аудио-трека от удалённого участника (индикатор ответа на звонок)
  2. Делает короткую паузу (~0.8 сек), чтобы пользователь успел поднести телефон к уху
  3. Произносит приветственное сообщение

Таймаут ожидания ответа: 60 секунд.


Интеграция с MMD Smart

Платформа поддерживает интеграцию с MMD Smart -- системой call-центра для входящих и исходящих звонков.

Настройка подключения

Для интеграции с MMD создайте Телефонное подключение (Telephony Connection):

ПараметрОписание
Organization IDИдентификатор организации в MMD
BFF WebSocket URLURL WebSocket-сервиса MMD (по умолчанию: wss://ccc.mmdsmart.com)
Keycloak URLURL аутентификации (по умолчанию: https://auth.mmdsmart.com/auth)
Keycloak RealmRealm аутентификации (по умолчанию: call_center)

Привязка агентов к MMD

После создания подключения можно привязать голосовых агентов, указав учётные данные MMD-агента:

  • Agent ID -- логин агента в MMD
  • Password -- пароль агента в MMD

Учётные данные шифруются перед сохранением в базе данных.


Сессии и аналитика

Просмотр сессий

Вкладка Сессии предоставляет полную информацию о звонках:

  • Фильтры: по агенту, каналу (Web, SIP Inbound, SIP Outbound, MMD), статусу, диапазону дат
  • Статистика: общее количество сессий, успешные/неуспешные, общая продолжительность
  • График: визуализация сессий по дням
  • Таблица: детальный список всех сессий

Детали сессии

При нажатии на сессию открывается панель с:

  • Транскрипт -- полный диалог (реплики пользователя и агента)
  • Метрики:
    • LLM: prompt/completion токены, время первого токена
    • TTS: количество символов, длительность аудио, время первого байта
    • STT: длительность аудио, время обработки
    • Общая средняя задержка
    • Количество реплик

Каналы в сессиях

КаналОписание
webЗвонок через веб-интерфейс
sip_inboundВходящий телефонный звонок
sip_outboundИсходящий телефонный звонок
mmdЗвонок через MMD Bridge
Совет

Используйте фильтр по каналу для анализа производительности агента в разных сценариях. Например, телефонные звонки обычно имеют бОльшую задержку из-за дополнительного hop через SIP Bridge.