- •Ip-абоненты - sip
- •Теоретическая вводная часть
- •Кратко опротоколе sip
- •Общие принципы работы
- •Основные задачи протоколаSip
- •Дополнительные протоколы
- •Сообщения sip
- •Запросы(Request)
- •Ответы(Response)
- •Содержание сообщений
- •Начальная строка
- •Заголовок сообщения
- •Пустая строка
- •Тело сообщения
- •АдресацияSip
- •Абонент sip
- •Основной вызов
- •Регистрация
- •Логические объекты при регистрации
- •Агент пользователя
- •Регистратор
- •База данных местоположения
- •Аутентификация (аутентификация Digest)
- •Аутентификация регистрации (сообщений register)
- •Аутентификация вызова (сообщений invite)
- •Абонент sip si3000
- •Использование прокси-сервера rtp
- •Акустические сигналы и уведомления
- •Инструкции по администрированию
- •Внесение терминала sip
- •Внесение абонента на устройство для множественного доступа (mad)
- •Стандартный способ
- •Внесение абонента на новый mad
- •A) Устройство mad зарегистрировано статически, а абоненты – динамически.
- •Б) Устройство mad регистрируется динамически, а абоненты – статически.
- •Внесение абонента на существующий mad
- •Способ msn
- •Практическое упражнение
Сообщения sip
По модели SIP больше похож на протокол http, чем на классические телефонные сигнализации. Для реализации используется принцип обмена сообщениями ЗАПРОС – ОТВЕТ (Request – Response).
На каждый запрос, кроме запроса ACK, возвращается ответ.
SIP Request – запрос клиента в сторону сервера после выполнения какой-либо операции (method).
SIP Response – ответ сервера об успешном выполнении запрошенной операции.
Транзакция – последовательность SIP сообщений, состоящая из одного запроса и, по крайней мере, одного ответа
Для соединения необходимы несколько последовательных транзакций.
Запросы(Request)
Поддерживаемые запросы(параметр‘Allow‘ сообщенийSIP):
INVITE иre-INVITE RFC3261
ACK RFC3261
CANCEL RFC3261
BYE RFC3261
INFO RFC2976
PRACK RFC3262
UPDATE RFC3262 (CS6111/CS6112-Yes; LS5092-No)
REGISTER RFC3261
Неподдерживаемые запросы:
OPTIONS, RFC3261
NOTIFY, SUBSCRIBE, REFER,...
Ответы(Response)
Поддерживаемые ответы:
Предварительные ответы1xx;
Положительные окончательные ответы2xx;
Отрицательныеокончательные ответыгруппы4xxнаINVITE;
Отрицательныеокончательные ответыгруппы5xxнаINVITE;
Отрицательныеокончательные ответыгруппы6xxнаINVITE.
Неподдерживаемые ответы:
Окончательные ответыгруппы3xx (перенаправления,приSIP-Tэтот тип ответа не ожидается).
Внутри любой группы можно определить 100 различных ответов, хотя только некоторые значения определены заранее. Таким примером служит ответ 200, имеющий смысл "в порядке" (O.K.).
Кроме номера в использовании дается краткий текст, дополнительно объясняющий смысл ответа.
Рисунок3
Рисунок4
Содержание сообщений
Все сообщения строятся одинаковым способом. Они имеют вид текстового файла, содержащего следующие части:
начальная строка |
обязательно |
заголовок |
обязательно |
пустая строка |
обязательно |
тело сообщения |
необязательно |
Описанная форма используется как для запросов, так и для ответов.
Начальная строка
Начальная строка требования (Request Line)
имя запроса (method name), Пример:
адрес вызываемого (Request URI), INVITE sip:nekdo@iskratel.si SIP/2.0
версия SIP (SIP Version)
Начальная строка ответа (Status Line)
версия SIP (SIP Version) Пример:
код ответа (Status code) SIP/2.0 200 OK
краткое "говорящее" описание ответа (Reason Phrase)
Заголовок сообщения
Вид заголовка сообщения одинаков для запросов и ответов. Он состоит из ряда полей (fields). Обычно каждое поле записано в отдельной строке.
Поле имеет следующий вид: имя_поля : значение_1, значение_2, ...
Допускается использование параметров: имя_поля : значение ; имя_параметра_1=значение_1; ...
Пример: From: "Predrag", <sip:predrag@iskratel.si>
Retry-After: 18000;duration=3600
В SIP определен набор полей, являющихся частью заголовка сообщения. Некоторые из них используются для запросов, другие – для ответов, но их большая часть используется для обоих типов сообщений. Далее в алфавитном порядке перечисляются некоторые из них:
Alert-Info: различный тоновый сигнал контроля посылки вызова и различительная посылка вызова;
Call-ID: идентификатор вызова;
Call-Info: дополнительное описание вызывающего / вызываемого (фото...);
Content-Length: длина тела сообщения – десятичное число октетов;
Date: дата и время;
Expires: относительное время в секундах до истечения чего-либо;
From: определяет создателя запроса (Request);
Route: устанавливает маршрутизацию сообщения на определенные proxy-серверы;
To: определяет получателя запроса (Request).
Рисунок 5
Рисунок 6