Агентика совершает исходящие звонки через встроенный провайдер Asterisk ARI. В managed-SIP-развёртывании (Plusofon) звонок проходит через Asterisk cell и уходит к оператору напрямую по транку, отрендеренному провижинером; в самостоятельном ARI-развёртывании Asterisk тоже направляет вызов к вашему SIP-транку напрямую.

Как уходит исходящий вызов

Пошаговое описание

  1. Запуск вызова. Вы вызываете API Агентики — например, test_phone_call из SDK, API-триггер или кампанию. Если конфигурация не указана явно, используется конфигурация по умолчанию для исходящих.
  2. Проверка допуска (admission). Перед originate любой путь (SDK, API-триггер, кампания, публичный агент) проходит проверку допуска: назначение должно быть E.164-номером из разрешённых префиксов (российские фиксированные и мобильные); для managed-SIP-конфигураций дополнительно резервируется слот подключения. Для edge-маршрутизируемых подключений admission выпускает одноразовый egress-токен и передаёт его в originate. Отказ в admission отклоняет вызов (4xx/503), а не «протекает» в набираемый номер; в managed-SIP с включёнными лимитами одновременных звонков отказ 503 различает причину — outbound_user_limit (суммарный лимит пользователя) или outbound_config_limit (лимит подключения).
  3. Создание канала. Agentika API отправляет в Asterisk POST /ari/channels. Для managed-SIP используется Local/<номер>@<outbound_context>, чтобы канал прошёл через диалплан и получил обязательный SIP-заголовок P-Charge-Info. Номер вызывающего абонента должен быть одним из активных номеров конфигурации. Egress-токен (если выпущен) передаётся как наследуемая переменная канала __AGENTIKA_EDGE_OUTBOUND_TOKEN.
  4. Диалплан в cell. Asterisk выполняет контекст исходящего маршрута, добавляет P-Charge-Info из унаследованной переменной __AGENTIKA_P_CHARGE_INFO и — только если переменная AGENTIKA_EDGE_OUTBOUND_TOKEN установлена — заголовок X-Agentika-Edge-Outbound-Token, после чего набирает PJSIP/<номер>@<trunk_endpoint>.
  5. Релей к оператору. INVITE уходит из cell к оператору (Plusofon) напрямую по транку, отрендеренному провижинером. Привязка egress-токена к брони валидируется admission-сервисом managed-SIP (python-edge), когда этот контур развёрнут.
  6. Ответ абонента. Когда абонент отвечает, Asterisk генерирует событие StasisStart в Stasis-приложение.
  7. Пайплайн разговора. ARI-менеджер ловит StasisStart и запускает AI-пайплайн. Аудио между абонентом и Агентикой передаётся через отдельный media WebSocket конкретного запуска.

Предварительные требования

  • Настроенный провайдер телефонии Asterisk ARI с активными номерами. См. обзор телефонии.
  • Для managed-SIP: cell должна быть провижинена, а контекст исходящего набора сгенерирован провижинером Plusofon.
  • Для самостоятельного Asterisk: в диалплане должна быть настроена маршрутизация к вашему SIP-транку, либо поле Контекст исходящего набора оставлено пустым для прямого PJSIP-набора.

Дальше