Статья [0] VoIP. Введение. SIP, H.323, T.38

Приветствую, Codeby!

Я давно хотел написать цикл статей подробно раскрывающих тему VoIP, SIP, SS7 на практике. И вот, наконец, разобравшись со всеми текущими делами, решил начать год с написания такого цикла.

Структура цикла:

[0] VoIP. Введение. SIP, H.323, T.38
[1] VoIP. Транспорт и кодирование голоса
[2] VoIP. Мониторинг эффективности сети
[3] Voip. Система сигнализации SS7 (ОКС-7)

Итак, что это будет?

Я постараюсь максимально доступно описать работу международной компании предоставляющей услуги VoIP, ее структуру и взаимодействие с биллинг системой, концентраторами и коммутаторами VoIP потоков, SS7 и NGN шлюзами и т.д.

1516134742170.png

Так же, будут затронуты аспекты взаимодействия по протоколам SS7 и VoIP, с мировыми лидерами рынка сотовой связи.

Я постараюсь, рассмотреть возможные уязвимости в структуре компании, и рассказать о способах их эксплуатации или защиты от таковых.

В общем, если отбросить эти заумные термины, мы с вами заглянем на рабочий стол VoIP NOC Engineer , разберемся в протоколах связи, снимем несколько дампов реального трафика проходящего по сети, декодируем и послушаем звонки, попробуем перехватить и проанализировать входящий и исходящий трафик.

В целом, будет довольно увлекательно, большего я рассказать не могу, так как, еще не знаю, чем цикл будет дополняться, и, конечно же, ваши отзывы и комментарии будут влиять на структуру публикаций.

А теперь немного, необходимой скучной теории, по порядку:

IP-телефония — телефонная связь по протоколу IP. Она включает в себя набор коммуникационных протоколов, технологий и методов, обеспечивающих традиционные для телефонии набор номера, дозвон и двустороннее голосовое общение, а также видео звонки по Интернет или другим IP-сетям. Сигнал по каналу связи передаётся в цифровом виде и, перед передачей преобразовывается (сжимается, про сжатие поговорим позже) для того, чтобы удалить избыточность информации и снизить нагрузку на сеть передачи данных.

Протоколы:

SIP - это протокол прикладного уровня модели OSI, описывающий способы и правила установления интернет - сессий для обмена мультимедийной информацией, такой как: звук, голос, видеоряд, графика и др. Для соединения обычно используется порт 5060 или 5061. В качестве транспортных протоколов SIP поддерживает: UDP, TCP, SCTP, TLS . Протокол SIP широко применяется в IP-телефонии, видео и аудио-конференциях, онлайн играх и др.

Протокол SIP имеет клиент-серверную модель.

Основные функциональные элементы:
  • Абонентский терминал - устройство, с помощью которого абонент управляет установлением и завершением звонков. Бываю аппаратные (SIP phone) и программные (Softphone)
  • Прокси-сервер - устройство, которое принимает и обрабатывает запросы от терминалов, выполняя соответствующие этим запросам действия. Прокси-сервер состоит из клиентской и серверной частей, поэтому может принимать вызовы, инициировать запросы и возвращать ответы.
  • Сервер переадресации - устройство, хранящее записи о текущем местоположении всех имеющихся в сети терминалах и прокси-серверах. Сервер переадресации не управляет вызовами и не генерирует собственные запросы.
  • Сервер определения местоположения пользователей - представляет собой базу данных адресной информации. Он необходим для обеспечения персональной мобильности пользователей.
В силу того, что SIP разрабатывался несколько позже своего предшественника H.323, то с учетом его особенностей, SIP получил преимущества в виде:

Масштабируемости – При расширении сети, можно добавлять новых пользователей.

Простоты реализации соединения – Так как SIP использует текстовый формат сообщений от HTTP, то сведена к минимуму вероятность сбоя соединения при ошибках в анализе возможностей поддерживаемых терминалами.

Мобильности - Благодаря гибкой архитектуре протокола SIP, пропадает необходимость заново регистрировать пользователей, в случае смены ими своего местоположения (Имеется виду сетевой адрес).

Ко всему прочему, протокол SIP может быть использован совместно с другими протоколами IP-телефонии, протоколами ТфОП, и для связи с интеллектуальными сетями, а при появлении новых типов услуг существует возможность дополнять протокол SIP новыми функциями.

Обмен сообщениями в SIP идёт по обыкновенной схеме «запрос-ответ» Существует 6 типов запросов и 6 типов ответов.

Типы запросов:
  • INVITE — Инициирует вызов от одного терминала к другому. Содержит описание поддерживаемых сервисов (которые могут быть использованы инициатором сеанса), а также виды сервисов, которые желает передавать инициатор;
  • ACK —Подтверждение установления соединения адресатом. Содержит окончательные параметры сеанса связи, выбранные для установления сеанса связи;
  • CANCEL — Отмена ранее переданных неактуальных запросов;
  • BYE — Запрос на завершение соединения;
  • REGISTER — Идентификация местоположения пользователя;
  • OPTIONS — Запрос на информацию о функциональных возможностях терминала, обычно посылается до фактического начала обмена сообщениями INVITE, ACK.
Типы ответов:
  • 1хх — Информационные ответы; Информационные ответы сообщают о ходе выполнения запроса и не являются его завершением. Остальные же классы ответов завершают выполнение запроса.
  • 2хх — Успешное окончание запроса;
  • 3хх — Информация об изменения местоположения вызываемого абонента;
  • 4хх — Информация об ошибке;
  • 5хх — Информация об ошибке на сервере;
  • 6хх — Информация о невозможности вызова абонента (пользователь с таким адресом не зарегистрирован, или пользователь занят).
Ниже пример звонка по протоколу SIP: SIP => SIP

1516134781158.png



И пример не успешного вызова, у терминирующей стороны (шлюза), нет емкости для принятия звонка:

1516134804066.png


Полагаю, этого пока достаточно, по мере необходимости, буду дополнять. А подробности всегда можно найти в сети.

H.323

Еще один протокол, который используется многими VoIP компаниями – это H.323, если сказать точнее, это стек, набор стандартов для передачи мультимедиа-данных по сетям с пакетной передачей.

При том, что он сам включает множество стандартов, H.323 входит в еще более крупную серию коммуникационных стандартов на видеоконференции для сетей разных типов. Известная как H.32x, эта серия включает стандарт H.320 для видеоконференций по сетям ISDN, и аналогичные стандарты H.321 для B-ISDN и ATM, и H.324 для телефонных сетей общего пользования. Таким образом, достигается взаимодействие сетей мультимедиа различных типов.

Рекомендация H.323 разделяет передачу данных на четыре составляющих, каждая из которых описана в соответствующих дополнительных рекомендациях:

Сигнализация — формирует соединение и управляет его статусом, описывает тип передаваемых данных.

Управление потоковым мультимедиа (видео и голос) — передача данных посредством транспортных протоколов реального времени (RTP).

Приложения передачи данных (факсимильные сессии и т. п.) — передача в рамках соответствующих стандартов, таких как T.120 и T.38.

Коммуникационные интерфейсы — взаимодействие устройств на физическом, канальном, сетевом уровнях.

1516135035573.png


Сигнализация H.323 основывается на рекомендации Q.931, применяемой в ISDN. Наиболее распространённые виды сигнализации - H.225.0 и H.245.

По той причине, что запросов и ответов в Q.931 намного больше, я не буду их расписывать, принцип должен быть уже понятен.

Если сравнивать эти два протокола, то можно начать с того, что H.323 несколько сложнее SIP, в плане технической реализации и взаимодействия с другими протоколами.

Общий объем спецификаций H.323 приближается к 1000 страниц. Объем спецификаций протокола SIP не превышает 200 страниц. В сообщениях протокола Н.323 применяется до 100 информационных полей, а в протоколе SIP их всего несколько десятков. Как было сказано выше, подобно НТТР, в протоколе SIP используется текстовый формат сообщений. Это облегчает синтаксический анализ и генерацию кода, позволяет реализовать протокол на базе любого языка программирования, упрощает его управление в процессе эксплуатации, а также анализ сообщений, дает возможность вручную вводить некоторые поля.

В протоколе Н.323 сообщения представлены в двоичном коде ASN.1, поэтому их обработка производится намного быстрее, однако человек с «невооруженным глазом» их прочесть не сможет. Для их кодирования и декодирования требуется компилятор ASN.1.

Ниже пример звонка H.323 => H.323. Этот звонок обработан, и мы можем видеть сигнализацию, чтобы оперативно реагировать на возникающие проблемы.

1516135097120.png



Полагаю, разница между SIP и H.323 видна.

Facility - это сообщения настройки, шлюзы обмениваются ими за пару секунд до того как вызывающий абонент услышит КПВ и во время звучания гудков. За это время открываются логические каналы, в общем, шлюзы приветствуют друг друга, и настраиваются передавать данные. Вот содержимое одного из таких сообщений:

1516135116750.png


В этом случае - Capability Cegotiation - это процесс определения устраивающего обе стороны кодека.

Теперь взглянем на ситуацию, когда шлюз H.323 пытается дозвониться на SIP, и успешно это делает:

1516135137886.png


Видим различия, в сигнализации, названиях запросов у протоколов SIP и H.323.

К примеру, SETUP - запрос установления соединения, для SIP трансформируется нашим шлюзом в INVITE, который мы передаем вызываемому хосту. И далее по спецификации.
Больше информации по этой теме, можно прочитать у Гольдштейна и подобных ему авторов, труды которых легко найти в сети.

А бонусом держите ссылку на одну из систем мониторинга, там, на примере разных телекомов, (все имена и события вымышлены) вы можете поклацать на всякие кнопочки – это демонстрационный режим, и посмотреть на взаимодействие протоколов изнутри:
И закончить первую статью из цикла, я бы хотел коротким рассказом про еще один протокол, который до сих пор используется VoIP (и не только) компаниями – T.38.

Поскольку в моей деятельности он используется нечасто, поэтому и внимания ему будет уделено меньше.

T.38 — это стандарт Международного Союза Электросвязи для передачи факсимильных сообщений в реальном времени по IP-сетям. Для факсов, передаваемых по протоколу T.38, зарезервирован MIME-тип image/t38.

Иногда, приходится иметь с ним дело в связке со шлюзами H.323, приятного от этого мало, поэтому я надеюсь на скорый закат факсимильных сообщений.

Факс при VoIP-соединении отправляется следующим способом:
  • Во время голосового разговора факсовый аппарат (факс-модем или иное факсовое устройство) инициирует передачу факса путём посыла специальных тонов, которые обнаруживаются и с помощью сигнализации H.245 (в случае протокола H.323) или стандартной сигнализации SIP голосовой логический канал передачи (по протоколам G.729, G.723 и т. п.) закрывается, и открывается логический канал передачи по протоколу T.38.
После завершения передачи факса (при потере управляющих тонов факсового аппарата) в свою очередь закрывается логический канал для T.38 и открывается голосовой логический канал для продолжения разговора.

В основном используется протокол UDP, где потери компенсируются посылкой пакетов с избыточными данными.
Протокол Т.38 не затрагивает сигнализацию, и, таким образом, встраивается в стек других VoIP протоколов: H.323, SIP, MGCP и IAX.
Изображение ниже, точнее всего передает суть прохождения факса в сети:


1516135484461.png


Итак, целью всего написанного выше, была попытка обрисовать различие основных протоколов, с которыми работает компания. К остальным, SS7 и т.д. мы подойдем чуть позже, т.к. нужно осознать и переварить, хотя бы это.

Что в итоге?

SIP – удобный понятный, поддерживается большинством терминалов. Разрабатывался на основе HTTP и SMTP и многое от них позаимствовал. В общем, хорошо с ним все.

H.323 – Немного сложнее и старее. Преимуществом, на мой взгляд, является обилие всяких функций, с помощью которых в одну сеть можно объединить различное оборудование, многих производителей (SIP имеет такую возможность). Когда начал использоваться в IP-телефонии, принес с собой все проблемы, встречающиеся в сетях PSTN (ТфОП).

Т.38 – Факс предназначен для аналоговых сетей и довольно плохо взаимодействует с сетями VoIP. Это связано с тем, что данные передаются по факсу не так как обычная речь.

В следующей статье, рассмотрим транспортные протоколы и методы (алгоритмы) сжатия данных.

Спасибо за внимание.
 
Последнее редактирование:
Вообще круто. Очень актуально сейчас. Работал в одной крупной конторе, так вот эта вся система там настраивается, лишь бы работала. Поэтому очень нужная вещь!
 
  • Нравится
Реакции: Mokh и Vander
Хорошая статья с базовыми знаниями, необходимыми для того, чтобы начинать "вливаться в тему" воипа :) от человека, который "в теме" и знает о чем пишет.
 
  • Нравится
Реакции: Mokh
Это будет цикл статей года.Спасибо Огромное,Бро,что начал работать над подачей таких знаний,отвечающим современным тенденциям.
Одно из самых сложных направлений для меня.
 
  • Нравится
Реакции: Mokh и Vander
Наверное многие со мной согласятся, что это одна из "Золотых" статей кодебай. Прошу поддержать меня сообщество в просьбе к автору:
@Vander, бро, я понимаю что ты администратор, все дела ... Статья достойна участвовать в конкурсе codeby_phdays
Скромность тут неуместна ;)
 
Статья для начального обзора телефонии, для тех кто понятие не имеет о телефонии и тех кто хочет узнать хотя бы термины.
Нормальная статья.
Работал в одной крупной конторе, так вот эта вся система там настраивается, лишь бы работала.
Самая большая сложность -это настроить правильно файервол. С ним спецы бьются не один день. А астериск настривают довольно быстро.
И когда пытаются подключится через брут пароля, то на мониторе их сразу видно и они сразу летят в бан. Особенно китайские IP преуспевают в "брутном" деле.
 
Последнее редактирование модератором:
  • Нравится
Реакции: Mokh и Vander
Наверное многие со мной согласятся, что это одна из "Золотых" статей кодебай. Прошу поддержать меня сообщество в просьбе к автору:
@Vander, бро, я понимаю что ты администратор, все дела ... Статья достойна участвовать в конкурсе codeby_phdays
Скромность тут неуместна ;)

Спасибо) Я не против поучаствовать, если билетик выиграю, то обязательно посещу phdays:)
 
  • Нравится
Реакции: Mokh
Самая большая сложность -это настроить правильно файервол.
Да, а RADIUS, Jail'ы и VPN туннелли с VLAN'ами поднять и пробросить, это уж мы быстро и без заморочек. Главное файерволл.

А астериск настривают довольно быстро.
Тоже верно, особенно если его не использовать.
 
  • Нравится
Реакции: Yamaxa
не плохой на эту тему..
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!