IP-телефония
Телефонная связь поверх IP-сетей: голос оцифровывается, сжимается кодеком и передаётся пакетами вместо аналоговой линии.
Что такое IP-телефония
IP-телефония (VoIP, Voice over IP, «айпи телефония») — передача голоса через компьютерные сети вместо традиционных телефонных линий. Микрофон оцифровывает звук, кодек сжимает его, а дальше голос летит теми же IP-пакетами, что и веб-трафик.
Разница с обычной телефонией — в том, чего у IP-телефонии нет. Аналоговая связь выделяла под каждый разговор физический канал: занятая линия принадлежала вам целиком. В IP-сети выделенного канала нет — пакеты с голосом конкурируют за полосу со всем остальным трафиком. Отсюда и плюсы (звонок стоит копейки, номер не привязан к проводу), и главная сложность — качество зависит от того, как ведёт себя сеть.
Как устроен звонок
Работают два протокола, и это важно понимать при отладке:
SIP — сигнализация: найти абонента, дозвониться, положить трубку
RTP — сам голос, поток пакетов каждые 20 мс
Абонент A ──SIP INVITE──▶ АТС ──SIP INVITE──▶ Абонент B
Абонент A ◀════ RTP: голос идёт напрямую ════▶ Абонент B
SIP только договаривается о звонке, голос он не несёт. Поэтому классическая жалоба «звонок соединяется, но собеседника не слышно» — это всегда RTP: сигнализация прошла, а медиапоток заблокирован файрволом или NAT.
| Протокол | Порт | Транспорт | Что делает |
|---|---|---|---|
| SIP | 5060 | UDP/TCP | сигнализация |
| SIPS | 5061 | TLS | шифрованная сигнализация |
| RTP | диапазон, часто 10000–20000 | UDP | голосовой поток |
RTP работает поверх UDP намеренно: переспрашивать потерянный кусок голоса бессмысленно — пока он придёт, разговор уйдёт вперёд. Лучше пропустить 20 мс, чем ждать.
Кодеки
| Кодек | Полоса на звонок | Замечание |
|---|---|---|
| G.711 | ~64 кбит/с | без сжатия, эталонное качество, стандарт на стыках |
| G.729 | ~8 кбит/с | сильное сжатие, экономит канал |
| Opus | адаптивно | широкополосный, подстраивается под сеть |
С заголовками звонок по G.711 занимает около 85–100 кбит/с. Считать полосу надо на пиковое число одновременных разговоров, а не на число сотрудников.
Что реально ломает качество
Голосу не нужна широкая полоса — ему нужна предсказуемость. Три параметра решают всё:
- Задержка. Выше ~150 мс в одну сторону — собеседники начинают перебивать друг друга.
- Джиттер — разброс задержки. Пакеты, идущие через равные 20 мс, приходят рванно; сглаживает jitter buffer, но он же добавляет задержку.
- Потери. Даже 1–2% слышны как выпадение слогов.
Практический вывод: QoS — не роскошь, а условие работы. Голос помечают DSCP EF (46) и пропускают вперёд остального трафика. Чаще всего виновата не полоса, а bufferbloat: заливка большого файла забивает буфер роутера, задержка улетает до сотен миллисекунд, и звонок рассыпается при формально свободном канале.
Вторая типовая беда — NAT. SIP передаёт адреса внутри тела сообщения, а NAT их не переписывает: сервер пытается слать голос на приватный адрес 192.168.x.x. Лечится настройкой внешнего адреса на АТС, STUN или SBC на границе сети.
Своя АТС
Софтовая АТС ставится на обычный VPS — самые известные Asterisk и FreeSWITCH, оба open source.
; Asterisk: внутренний номер и внешний адрес за NAT
[101]
type=friend
context=internal
host=dynamic
secret=СЛОЖНЫЙ_ПАРОЛЬ
nat=force_rport,comedia
Что учесть при размещении:
- Ресурсы скромные. Сигнализация почти ничего не стоит; процессор нужен, только если АТС перекодирует потоки между кодеками — этого лучше избегать.
- Регион важнее мощности. Задержку не купить: сервер берут ближе к абонентам.
- SIP сканируют постоянно. Открытый в интернет порт 5060 находят ботами за часы, а взлом означает счёт за международные звонки. Ограничивайте доступ по IP, ставьте fail2ban, никогда не используйте простые пароли и номер в качестве логина.
- Шифруйте. SIPS и SRTP — иначе разговор читается на любом узле по пути.
Связанные термины
Готовы запустить GPU-задачу?
Запустить GPU-сервер