Skip to main content

Телефония: транк и маршруты

Цель модуля: подключить SIP-транк оператора и понять, чем входящий маршрут отличается от исходящего.
Раздел «Телефония»: транк со входящим и исходящим маршрутами

/telephony — один транк, у него входящий номер с привязанным агентом и исходящий маршрут. Кнопка «Позвонить» — быстрая проверка транка живым звонком, «Доступ» — управление доступом к транку.

Модель двухуровневая, и это стоит понять один раз:
  • Транк — соединение с SBC оператора: хост, порт, транспорт, аутентификация. Пароль в поле не пишется: указывается имя переменной окружения, значение живёт в секрет-сторе и не попадает ни в БД, ни в логи.
  • Маршруты (сабгруппы) — то, чем реально пользуются:
    • входящий = номер + ровно один агент, который отвечает на звонки на этот номер (только опубликованный — боевые звонки идут по опубликованной версии);
    • исходящий = набор caller ID + сколько угодно агентов + разрешённые направления и лимиты (одновременных звонков и звонков в минуту) + политика выбора номера;
    • перевод = то же, что исходящий, но только для звонков оператору: свои номера, свои лимиты, свой префикс из пяти цифр (у исходящего — четыре). Настройки обзвона на переводы не распространяются. Эту сабгруппу выбирают в узле перевода — см. Перевод на человека.

С какого номера уйдёт звонок

Если в исходящей сабгруппе несколько caller ID, выбор между ними делает настройка Выбор исходящего номера в карточке сабгруппы: Случайный из списка (по умолчанию) или По кругу по списку. Политика срабатывает везде, где номер не задан явно: кабинет, публичный API без указания номера, каждая попытка кампании. В формах звонка и кампании для этого есть вариант По политике сабгруппы. Кандидаты — пул сабгруппы в пересечении с тем, что разрешает маршрут. Пустое пересечение даёт понятный отказ, а не звонок с чужого номера. Выбранный номер закреплён за звонком: нога перевода уходит с того же номера, с которого набирали.
Ротация номеров не включается сама по себе. Пул из сотен номеров звонит так, как задано политикой сабгруппы, — если ротация вам нужна, проверьте, что в карточке выбран «Случайный из списка» или «По кругу по списку».

Нажмите, чтобы открыть целиком

Форма редактирования SIP-транка: основное, входящие маршруты, подключение к SBC, исходящие маршруты

Форма транка: слева входящие маршруты и передача X-заголовков в переменные сессии, справа — подключение к SBC и исходящие маршруты с caller ID, разрешёнными направлениями и лимитами.

Три ошибки, которые стоят суток отладки
  • Разрешённые направления пустые. Пусто = «звонить куда угодно». Всегда ограничивайте префиксом (например 7) — это защита от дорогого исходящего мусора при ошибке в файле контактов.
  • Лимиты по умолчанию. 10 одновременных и 30 в минуту — начальные значения; оператор может резать больше, и тогда часть звонков просто не уйдёт.
  • Привязан черновик, а не версия. Входящий агент обязан быть опубликован, иначе на номер отвечать некому.
Что запросить у оператора в КазахстанеМинимальный список: хост и порт SBC, транспорт (обычно UDP), способ аутентификации (регистрация с логином/паролем или доверие по IP), номера для caller ID, ограничения по одновременным вызовам и требования к формату номера (с + или без, нужен ли префикс выхода). Префикс набора задаётся в исходящем маршруте, а не в агенте.