- •Протокол н.323
- •2.1 Архитектура сети н.323
- •2.2 Адресация в н.323
- •2.3 Структура Рекомендации н.323
- •2.5 Комментарий по чтению трассировок
- •Глава 3. Протокол инициации сессий sip
- •3.1 Структура протокола sip
- •3.2 Сообщения sip
- •3.3 Сценарий установления соединения
- •3.5 Формат сообщений sip
- •3.5 Временная диаграмма процесса установления соединения
3.2 Сообщения sip
Все сообщения SIP представляют собой последовательности текстовых строк (RFC 2279), организованных в следующую структуру:
стартовая строка сообщения;
заголовки (общие, содержания, запросов/ответов);
содержание сообщения (тело).
В протоколе SIP определено шесть типов запросов. Тип запроса указывается терминалом в стартовой строке.
Запрос REGISTER посылается для указания своего текущего месторасположения, новой адресной информации и продолжительность регистрации.
Запрос INVITE приглашает вызываемого пользователя участвовать в сеансе связи, а также содержит SIP-адрес вызываемого пользователя и описание сеанса.
Запрос ACK подтверждает прием ответа на запрос INVITE и содержит окончательное (согласованное) описание сеанса связи.
Запрос BYE посылается оборудованием терминала, который хочет завершить сеанс связи. Терминал, получивший BYE должен прекратить передачу информации и подтвердить свои действия ответом.
Все ответы делятся на информационные и окончательные (финальные).
Информационные ответы кодируются трехзначным числом из первой и второй сотни 1xx. Информационные ответы переносят сообщения о выполняемых в настоящий момент действиях, например 100 Trying – процесс установления сеанса продолжается, 180 Ringing – КПВ.
Ответы 2xx означают, что запрошенное действие успешно выполнено.
Ответы 3xx информируют вызывающего пользователя о перемещении вызываемого пользователя. Например, 302 Moved Temporary – пользователь временно находится по другому адресу.
Ответы 5xx информируют о наличии ошибки в полученном запросе. Например, 502 Unauthorized – означает необходимость проведения процедуры аутентификации.
Ответы 5xx информируют о невозможности выполнения запроса из-за отказа сервера. Например, 503 Service Unavailable – служба недоступна.
Ответы 6xx информируют о невозможности связи с вызываемым пользователем. Например, 600 Busy Everywhere – вызываемый абонент занят.
В качестве адресов в SIP используются универсальные указатели ресурсов – URL (Universal Resource Locators) – SIP URL.
SIP-адреса бывают 5-х типов:
Имя @ домен;
Имя @ хост;
Имя @ IP – адрес;
N телефона @ шлюз.
Таким образом, адрес состоит из 2-х частей. Первая включает имя пользователя или номер телефона. Вторая указывает имя домена, хоста или шлюза.
Примеры SIP- адресов:
SIP: asa@mtuci.ru
SIP: victor@192.168.0.3
SIP: 1886229@sipgate.de
3.3 Сценарий установления соединения
Рассмотрим алгоритм установления сессии через 2 прокси-сервера, каждый из которых обслуживает свою группу пользователей. В качестве начальных условий положим, что терминал 1 зарегистрирован на SIP-сервере 1, а терминал 2 – на SIP-сервере 2.
Перед началом сессии терминал 2 должен быть зарегистрирован на Proxy сервере (запрос REGISTER).
Терминал 1 посылает запрос INVITE к своему SIP-серверу.
SIP-сервер 1 отвечает сообщением 100 TRYING.
SIP-сервер 1 пересылает запрос INVITE SIP-серверу 2.
SIP-сервер 2 отвечает сообщением 100 TRYING.
SIP-сервер 2 посылает запрос INVITE терминалу 2.
Рисунок 3.2 Сценарий установления сессии (часть 1)
Терминал 2 отвечает сообщением 180 RINGING.
SIP-сервер 2 пересылает сообщение 180 RINGING SIP-серверу 1.
SIP-сервер 1 пересылает сообщение 180 RINGING терминалу 1.
Терминал 2 отвечает SIP-серверу 2 сообщением 200 OK.
SIP-сервер 2 пересылает сообщение 200 OK к SIP-серверу 1.
SIP-сервер 1 пересылает сообщение 200 OK терминалу 1.
Терминал 1 отвечает SIP серверу 1 сообщением ACK.
SIP-сервер 1 пересылает это сообщение SIP серверу 2.
SIP-сервер 2 пересылает это сообщение терминалу 2.
Между терминалами устанавливается сессия (RTP/RTCP).
Рисунок 3.2 Сценарий установления сессии (часть 2)
После окончания разговорной фазы терминал 1 посылает запрос BYE, который транслируется прокси-серверами к терминалу 2. Терминал 2 посылает ответ 200 OK, после чего терминалы возвращаются в исходное состояние.