SIP-транки и SBC
Как подключить вашу телефонную систему к внешнему миру: SIP-транки для связи с PSTN, методы аутентификации, тарификация и роль SBC в защите и маршрутизации трафика.
Что такое SIP-транк
Представьте: вы построили собственную телефонную систему (FreeSWITCH, Kamailio, веб-телефоны). Внутри вашей сети все сотрудники могут звонить друг другу. Но как позвонить на обычный мобильный или городской номер? Ваша система не подключена к телефонной сети (PSTN).
SIP-транк — это виртуальный «провод» между вашей телефонной системой и оператором связи, который имеет выход в обычную телефонную сеть (PSTN). Через этот «провод» передаётся SIP-сигнализация и голосовой трафик (RTP).
Ваша PBX — это офисная АТС.
SIP-транк — это телефонная линия от оператора, которая приходит в вашу АТС.
Без неё АТС работает только внутри офиса. С ней — звонки уходят наружу на любые номера мира.
Раньше это был физический кабель (ISDN PRI — 30 каналов в одном проводе). Сегодня SIP-транк — это IP-подключение через интернет. Никаких физических проводов — только настройка в конфигурации.
DID-номера — вам выделяют телефонные номера (например +49 30 1234567 для Берлина),
на которые люди могут звонить и попадать в вашу систему.
Исходящие звонки — ваши сотрудники могут звонить на любые номера мира,
оператор маршрутизирует вызов в PSTN.
Caller ID — при исходящем звонке у абонента отображается ваш номер (DID),
а не какой-то случайный.
Ёмкость — количество одновременных звонков. В отличие от ISDN (30 каналов),
SIP-транк может пропускать сотни звонков одновременно.
Как подключить SIP-транк
• IP-аутентификация — вы сообщаете IP-адрес вашего сервера, провайдер разрешает трафик только с этого IP. Без паролей.
• Credentials — логин + пароль, ваш сервер регистрируется на SIP-сервере провайдера (как обычный SIP-телефон).
Методы аутентификации
| IP-аутентификация | Registration (credentials) | |
|---|---|---|
| Как работает | Провайдер добавляет ваш IP в белый список. Все SIP-пакеты с этого IP принимаются без пароля | Ваш сервер отправляет REGISTER на SIP-сервер провайдера с логином/паролем, как обычный SIP-телефон |
| Для кого | Enterprise с выделенным IP. Наш вариант | Небольшие компании, динамический IP, домашние PBX |
| Безопасность | Высокая — привязка к IP, нельзя подключиться с чужого адреса | Средняя — пароль может быть скомпрометирован |
| NAT | Не проблема — IP фиксированный | Может быть проблемой — REGISTER через NAT требует keep-alive |
| Failover | Можно указать несколько IP (primary + backup) | Ограничен — регистрация с одного хоста |
Технические примеры
Как SIP-транк выглядит технически (SIP-сообщения)
Когда кто-то звонит на ваш DID +49 30 1234567, провайдер отправляет на ваш сервер SIP INVITE:
Ваш сервер отвечает 200 OK со своим SDP (свой IP для RTP, свои кодеки), и голосовой канал устанавливается.
Для исходящего звонка — наоборот: ваш сервер отправляет INVITE на SIP-сервер провайдера:
Тарификация
Сколько стоит SIP-транк (ценообразование)
| Компонент | Модель оплаты | Примерная цена |
|---|---|---|
| DID-номер | Ежемесячная аренда | $1–15/мес за номер (зависит от страны, US дешевле, ОАЭ дороже) |
| Входящие звонки | По минутам или бесплатно | $0–0.01/мин (многие провайдеры включают во входящие бесплатно) |
| Исходящие звонки | По минутам | $0.005–0.03/мин (локальные), $0.02–0.15/мин (международные) |
| Каналы (ёмкость) | Зависит от провайдера | Некоторые берут за concurrent channels ($2–5/канал), другие — без ограничений |
| Экстренные номера (E911) | Обязательный сбор (US) | $1–2/мес за номер |
При масштабе 43 страны — договаривайтесь с провайдерами напрямую о volume pricing. Крупные провайдеры (Telnyx, Bandwidth, BICS) дают скидки при объёме от 10,000+ минут/мес. Для некоторых стран выгоднее использовать локальных операторов (дешевле, лучше качество, регуляторные требования).
Проблемы и решения SBC
Когда у вас один провайдер — можно обойтись без Trunk SBC. FreeSWITCH напрямую общается с провайдером.
Когда у вас 43 страны и десятки провайдеров — начинается хаос, и Trunk SBC становится спасением:
Стандарт SIP (RFC 3261) — это 269 страниц. Каждый провайдер интерпретирует его по-своему:
• Один отправляет Caller ID в заголовке From
• Другой — в P-Asserted-Identity
• Третий — в Remote-Party-ID
• Кто-то требует + перед номером, кто-то без
• Форматы номеров: E.164, локальный, с кодом страны, без
Trunk SBC решает: нормализует все входящие SIP-сообщения к единому формату. FreeSWITCH всегда видит одинаковый SIP независимо от провайдера.
Звонок из Берлина в Мюнхен:
• Через Telnyx: $0.008/мин
• Через sipgate (локальный DE): $0.003/мин
• Через Twilio: $0.014/мин
Звонок из Берлина в Дубай:
• Через Telnyx: $0.09/мин
• Через du (локальный UAE): $0.04/мин
• Через Twilio: $0.12/мин
Trunk SBC решает: LCR (Least Cost Routing) — автоматически выбирает самый дешёвый маршрут для каждого звонка на основе префикса номера. Экономия — 30-60% на исходящих звонках.
У любого провайдера бывают аварии. Если FreeSWITCH напрямую подключён к одному транку — все исходящие звонки прекращаются.
Trunk SBC решает: автоматический failover. Если primary-транк не отвечает за 3 секунды → переключение на backup-транк. Пользователь даже не заметит.
Самая опасная угроза в телефонии. Злоумышленник получает доступ к вашей системе и начинает звонить на premium-номера (Куба, Сомали, спутниковые) по $3-5/минуту. За выходные — счёт на $50,000+.
Trunk SBC решает:
• Rate limiting — максимум N одновременных исходящих звонков
• Geo-blocking — блокировка звонков в «опасные» направления
• Spending alerts — уведомление если расходы за час превысили порог
• Anomaly detection — необычный паттерн (100 звонков на Кубу в 3 AM) → блокировка
Без Trunk SBC провайдер видит внутреннюю структуру вашей сети — IP-адреса FreeSWITCH, номера портов, имена серверов в заголовках Via и Contact.
Trunk SBC решает: переписывает все SIP-заголовки. Провайдер видит только IP/имя Trunk SBC. Ваша внутренняя архитектура скрыта.
Внутри вашей сети используется Opus (высокое качество, низкий трафик). Но многие PSTN-провайдеры принимают только G.711 (PCMU/PCMA) или G.729.
Trunk SBC + RTPEngine решают: транскодирование на границе. Внутри сети — Opus/G.722. На выходе к провайдеру — G.711. Прозрачно для пользователей.
Путь звонка через SBC
ВХОДЯЩИЙ ЗВОНОК (клиент звонит на ваш DID) Мобильный SIP-провайдер Trunk Kamailio FreeSWITCH Access Оператор телефон ───▶ (Telnyx) ───▶ SBC ───▶ Core ───▶ (IVR, ───▶ SBC ───▶ (веб- PSTN→SIP нормализ. маршрут. очередь) SRTP↔RTP телефон) E.164 LB→FS bridge WebRTC ИСХОДЯЩИЙ ЗВОНОК (оператор звонит клиенту) Оператор Access Kamailio FreeSWITCH Trunk SIP-провайдер Мобильный (веб- ───▶ SBC ───▶ Core ───▶ (bridge) ───▶ SBC ───▶ (sipgate) ───▶ телефон телефон) WSS→SIP маршрут. dial out LCR SIP→PSTN SRTP→RTP LB→FS failover anti-fraud