Протокол SIP / Книги / Публикации / НИИТС
Научно-образовательная школа СПбГУТ им. проф. М.А. Бонч-Бруевича
In English
На главную In English

Книги
Пособия
Статьи 2012
Статьи 2011
Статьи 2010
Статьи 2009
Статьи 2008
Статьи 2007
Статьи 2006
Статьи 2005
Статьи 2004
Статьи 2003
Статьи 2002
Статьи 2001
Статьи 2000
Статьи 1999
Статьи 1998
Статьи 1997
Статьи 1996
Статьи 1995
Статьи 1991
Статьи 1990
Статьи 1988
Статьи 1986
Статьи 1985
Статьи 1980
Патенты
Публикации
на английском
Протокол SIP

Заказать
книгу

Протокол SIP

Гольдштейн Б.С., Зарубин А.А., Саморезов В.В.

СПб.: BHV-Санкт-Петербург, 2005.

Пятый справочник из серии "Телекоммуникационные протоколы ВСС РФ", посвященный протоколу SIP. В нем приводятся сведения о принципах организации и функционирования протокола SIP (Session Initiation Protocol), широко используемого сегодня в IP-телефонии и являющегося наиболее вероятным кандидатом на ведущую роль в сетях связи следующего поколения NGN. Описываются сообщения SIP, процедуры управления соединениями в IP-сети и между сетями IP и ТфОП, процедуры аутентификации, защиты информации, обеспечения безопасности. Рассматриваются расширения SIP, обеспечивающие взаимодействие сети IP с телефонной сетью при создании и поддержке сеансов связи ТфОП-IP-ТфОП, ТфОП-IP и IP-ТфОП. Излагаются задачи преобразования сигнализации SIP при взаимодействии с другими протоколами сетей NGN. Освещаются вопросы тестирования SIP и пути реализации на базе этого протокола ряда известных и новых инфокоммуникационных услуг.

 

Содержание

 

Предисловие 14

Глава 1. Принципы и возможности SIP. 18

1.1. Протокол SIP в IP-сетях 19

1.2. Адресация в сетях SIP 23

1.3. Уровни протокола SIP 23

1.4. SIP и HTTP 25

1.5. Вызовы SIP 26

Глава 2. Агент пользователя 29

2.1. Логический объект Агент пользователя 29

2.2. Клиент агента пользователя UAC. 29

2.2.1. Создание запроса.30

2.2.1.1. Формирование поля Request-URI 30

2.2.1.2. Формирование заголовка To 30

2.2.1.3. Формирование заголовка From 31

2.2.1.4. Формирование заголовка Call-ID. 32

2.2.1.5. Формирование заголовка Cseq 33

2.2.1.6. Формирование заголовка Max-Forwards 33

2.2.1.7. Формирование заголовка Via 33

2.2.1.8. Формирование заголовка Contact 34

2.2.1.9. Формирование заголовков Supported и Require 34

2.2.1.10. Дополнительные компоненты сообщения 35

2.2.1.11. Передача запроса 35

2.2.2. Обработка ответов 36

2.2.2.1. Ошибки уровня транзакций 37

2.2.2.2. Неизвестные ответы 37

2.2.2.3. Заголовки Via 37

2.2.2.4. Обработка ответов группы 3хх. 37

2.2.2.5. Обработка ответов группы 4хх. 39

2.3. Сервер агента пользователя (UAS) 40

2.3.1. Процедура обработки запросов 41

2.3.1.1. Определение типа запроса 41

2.3.1.2. Определение типа заголовка. 41

2.3.1.3. Обработка полей To и Request-URI 41

2.3.1.4. Обработка одинаковых запросов. 42

2.3.1.5. Обработка заголовка Require. 42

2.3.1.6. Обработка содержимого тела сообщения 43

2.3.1.7. Применение расширений 43

2.3.2. Создание ответа 44

2.3.2.1. Передача предварительного ответа 44

2.3.2.2. Заголовки и параметры «tag» 44

2.3.2.3. Действие UAS без сохранения состояний 45

Глава 3. Сообщения протокола SIP 46

3.1. Структура сообщений 46

3.2. Заголовки сообщений 47

3.2.1. Формат заголовка 47

3.2.2. Заголовок Accept 51

3.2.3. Заголовок Accept-Encoding 51

3.2.4. Заголовок Accept-Language 51

3.2.5. Заголовок Alert-Info.51

3.2.6. Заголовок Allow 52

3.2.7. Заголовок Allow-Events52

3.2.8. Заголовок Authentication-Info 53

3.2.9. Заголовок Authorization 53

3.2.10. Заголовок Call-ID 53

3.2.11. Заголовок Call-Info 54

3.2.12. Заголовок Contact. 54

3.2.13. Заголовок Content-Disposition 55

3.2.14. Заголовок Content-Encoding 56

3.2.15. Заголовок Content-Language.57

3.2.16. Заголовок Content-Length 57

3.2.17. Заголовок Content-Type 58

3.2.18. Заголовок Cseq. 58

3.2.19. Заголовок Date 58

3.2.20. Заголовок Error-Info 59

3.2.21. Заголовок Event 59

3.2.22. Заголовок Expires 60

3.2.23. Заголовок From. 60

3.2.24. Заголовок In-Reply-To 60

3.2.25. Заголовок Max-Forwards 61

3.2.26. Заголовок Min-Expires.61

3.2.27. Заголовок MIME-Version 61

3.2.28. Заголовок Organization 62

3.2.29. Заголовок Path62

3.2.30. Заголовок Priority 63

3.2.31. Заголовок Privacy63

3.2.32. Заголовок Proxy-Authenticate 64

3.2.33. Заголовок Proxy-Authorization 64

3.2.34. Заголовок Proxy-Require 65

3.2.35. Заголовок P-Asserted-Identity 65

3.2.36. Заголовок P-Preferred-Identity 66

3.2.37. Заголовок P-Media-Authorization 66

3.2.38. Заголовок The P-Associated-URI 67

3.2.39. Заголовок P-Called-Party-ID 67

3.2.40. Заголовок P-Visited-Network-ID 68

3.2.41. Заголовок P-Access-Network-Info 68

3.2.42. Заголовок P-Charging-Function-Addresses. 69

3.2.43. Заголовок P-Charging-Vector.70

3.2.44. Заголовок P-DCS-Trace-Party-ID 70

3.2.45. Заголовок P-DCS-OSPS 71

3.2.46. Заголовки P-DCS-BILLING-INFO 72

3.2.47. Заголовок P-DCS-LAES и P-DCS-REDIRECT. 72

3.2.48. Заголовок RAck. 73

3.2.49. Заголовок Reason 73

3.2.50. Заголовок Record-Route 74

3.2.51. Заголовок Refer-To 74

3.2.52. Заголовок Reply-To 74

3.2.53. Заголовок Require.75

3.2.54. Заголовок Retry-After 75

3.2.55. Заголовок Route 75

3.2.56. Заголовок Rseq. 76

3.2.57. Заголовки Security-Client, Security-Server, Security-Verify. 76

3.2.58. Заголовок Server. 77

3.2.59. Заголовок Service-Route 77

3.2.60. Заголовок Subject 78

3.2.61. Заголовок Subscription-State.78

3.2.62. Заголовок Supported.79

3.2.63. Заголовок Timestamp 79

3.2.64. Заголовок To.79

3.2.65. Заголовок Unsupported 79

3.2.66. Заголовок User-Agent 80

3.2.67. Заголовок Via 80

3.2.68. Заголовок Warning 81

3.2.69. Заголовок WWW-Authenticate. 81

3.3. Назначение и формат запросов. 89

3.3.1. Структура запросов 89

3.3.2. Запрос INVITE 90

3.3.3. Сообщение ACK91

3.3.4. Сообщение СANCEL91

3.3.5. Сообщение BYE.92

3.3.6. Сообщение REGISTER.92

3.3.7. Сообщение OPTIONS 92

3.3.8. Сообщение INFO. 93

3.3.9. Сообщение PRACK 94

3.3.10. Сообщение UPDATE 95

3.3.11. Сообщения SUBSCRIBE и NOTIFY 98

3.3.12. Сообщение REFER 101

3.3.13. Сообщение MESSAGE.102

3.4. Назначение и формат ответов на запросы.106

3.4.1. Информационные ответы 1хх 107

3.4.2. Ответы об успешной обработке запроса 2xx 108

3.4.3. Ответы о перенаправлении вызова 3xx 109

3.4.4. Ответы об ошибке в запросе 4xx 110

3.4.5. Ответы об отказе сервера 5xx 113

3.4.6. Ответы о полной невозможности установить соединение 6xx 114

Глава 4. Процедуры управления соединением 115

4.1. Диалоги.115

4.2. Процедура создания диалога 116

4.2.1. Действия UAS 116

4.2.2. Действия UAC 118

4.3. Процедура передачи и приема запросов в ходе диалога 118

4.3.1. Действия UAC при создании запроса 119

4.3.2. Действия UAC при обработке ответов 121

4.3.3. Действия UAS 121

4.3.4. Процедура завершения диалога 122

4.4. Транзакции122

4.4.1. Процедуры функционирования клиентских транзакций.124

4.4.2. Клиентская INVITE-транзакция 125

4.4.3. Конечный автомат клиентской INVITE-транзакции.125

4.4.4. Формирование запроса ACK.128

4.4.5. Клиентская не-INVITE-транзакция 129

4.4.6. Конечный автомат клиентской не-INVITE транзакции 130

4.4.7. Соответствие ответов клиентским транзакциям 132

4.4.8. Процедуры функционирования серверных транзакций 132

4.4.9. Серверная INVITE-транзакция.133

4.4.10. Серверная не-INVITE-транзакция 135

4.4.11. Соответствие запросов серверным транзакциям136

4.5. SDL-диаграммы для конечных автоматов транзакций139

4.5.1. Клиентская INVITE-транзакция 139

4.5.2. Клиентская не-INVITЕ-транзакция 143

4.5.3. Серверная INVITЕ-транзакция.146

4.5.4. Серверная не-INVITЕ-транзакция 149

4.6. Процедура регистрации 152

4.6.1. Процедура формирования запроса REGISTER 154

4.6.2. Создание связок 156

4.6.2.1. Продолжительность действия контактного адреса 157

4.6.2.2. Приоритеты среди контактных адресов. 157

4.6.3. Удаление связок 158

4.6.4. Обновление связок 158

4.6.5. Определение адреса registrar 159

4.6.6. Отправка запроса 159

4.7. Процедура обработки запроса REGISTER 160

4.8. Процедура запроса информации о функциональных возможностях 164

4.8.1. Создание запроса OPTIONS 165

4.8.2. Обработка запроса OPTIONS 165

4.9. Процедура отмены запроса.167

4.9.1. Действия клиента 167

4.9.2. Действия сервера.168

4.10. Инициирование сеансов связи 169

4.10.1. Процедуры UAC. Создание начального запроса INVITE 171

4.10.2. Процедуры UAC. Обработка ответов на запрос INVITE.173

4.10.2.1. Ответы 1х 173

4.10.2.2. Ответы 3х 174

4.10.2.3. Ответы 4xx, 5xx и 6xx 174

4.10.2.4. Ответы 2х 174

4.10.3. Процедуры UAS. Обработка запроса INVITE 175

4.10.3.1. Текущая стадия обработки 176

4.10.3.2. Перенаправление запроса INVITE 177

4.10.3.3. Отклонение запроса INVITE 177

4.10.3.4. Прием запроса INVITE 177

4.11. Процедуры модификации сеансов связи.178

4.11.1. Действия UAC 179

4.11.2. Поведение UAS.180

4.12. Процедуры разрушения сеансов связи183

4.12.1. Разрушение сеанса с помощью запроса BYE. Работа UAC.183

4.12.2. Разрушение сеанса с помощью запроса BYE. Работа UAS 183

Глава 5. Прокси-серверы SIP 184

5.1. Назначение прокси-сервера-SIP 184

5.2. Функции прокси-сервера с сохранением состояний 186

5.2.1. Проверка правильности составления запроса 187

5.2.1.1. Проверка корректности синтаксиса. 187

5.2.1.2. Проверка схемы URI 188

5.2.1.3. Проверка заголовка Max-Forwards. 188

5.2.1.4. Проверка наличия замкнутого пути 188

5.2.1.5. Проверка заголовка Proxy-Require. 189

5.2.1.6. Проверка заголовка Proxy-Authorization. 189

5.2.2. Предварительная обработка маршрутной информации 189

5.2.3. Определение адресов пересылки 190

5.2.4. Пересылка запроса.192

5.2.4.1. Копирование запроса 193

5.2.4.2. Обновление содержимого поля Request-URI 193

5.2.4.3. Обновление содержимого заголовка Max-Forwards. 193

5.2.4.4. Добавление значения Record-Route (опционально). 193

5.2.4.5. Добавление дополнительных заголовков 195

5.2.4.6. Заключительная обработка маршрутной информации 195

5.2.4.7. Определение адреса, порта и транспортного протокола для пересылки следующему элементу 196

5.2.4.8. Добавление значения в заголовок Via 199

5.2.4.9. Добавление заголовка Content-Length (в случае необходимости) 199

5.2.4.10. Пересылка запроса 199

5.2.4.11. Установка таймера C 199

5.2.5. Обработка ответов199

5.2.5.1. Обнаружение буфера ответов 200

5.2.5.2. Перезапуск таймера С при помощи предварительных ответов 200

5.2.5.3. Удаление верхнего значения заголовка Via 200

5.2.5.4. Добавление ответа в буфер ответов 201

5.2.5.5. Проверка необходимости немедленной пересылки ответа 202

5.2.5.6. Выбор «наилучшего» окончательного ответа из буфера ответов 202

5.2.5.7. Объединение значений в заголовке Authorization 204

5.2.5.8. Перезапись значений заголовка Record-Route 204

5.2.5.9. Пересылка ответа 205

5.2.5.10. Создание запросов CANCEL 206

5.2.6. Обработка таймера С206

5.2.7. Обработка ошибок транспортного уровня SIP 207

5.2.8. Обработка запроса CANCEL207

5.3. Функции прокси-сервера без сохранения состояний 208

5.4. Работа с заголовком Route и полем Request-URI 210

5.5. Работа с заголовком Route и полем Request-URI 211

5.5.1. Взаимодействие через исходящий и входящий прокси-серверы 211

5.5.2. Прохождение сообщений через strict-router 213

5.5.3. Прохождение сообщений через прокси-сервер с перезаписью значения в заголовке Record-Route 215

5.6. Назначение и функции сервера перенаправления.216

Глава 6. Процедуры HTTP-аутентификации 218

6.1. Аутентификация в SIP 218

6.2. Процедуры аутентификации «пользователь-пользователь».220

6.3. Процедуры аутентификации «прокси-сервер-пользователь» 222

6.4. Схема аутентификации «Digest» 223

Глава 7. Защита тела сообщения средствами S/MIME 229

7.1. S/MIME сертификаты 229

7.2. Обмен ключами S/MIME 231

7.3. Защита тела сообщения 234

7.4. SIP-туннелирование 235

7.4.1. Обеспечение целостности SIP сообщений 236

7.4.2. Шифрование при туннелировании 238

Глава 8. Процедуры обеспечения безопасности 240

8.1. Типы угроз.241

8.1.1. Злоумышленная регистрация 241

8.1.2. Имитация сервера 242

8.1.3. Порча тела сообщения243

8.1.4. Срыв сеансов связи 244

8.1.5. Отказ в обслуживании (DoS-атаки) 244

8.2. Механизмы обеспечения безопасности 246

8.2.1. Безопасность транспортного и сетевого уровней 247

8.2.2. Схема SIPS URI248

8.2.3. HTTP-аутентификация.249

8.2.4. S/MIME 249

8.3. Реализация механизмов обеспечения безопасности 250

8.3.1. Требования для разработчиков оборудования SIP 250

8.3.2. Решения по обеспечению безопасности 250

8.3.2.1. Регистр 251

8.3.2.2. Междоменные запросы. 252

8.3.2.3. Запросы при отсутствии локального прокси-сервера 254

8.3.2.4. Защита от DoS-атак. 256

Глава 9. Алгоритмы установления соединения 257

9.1. Установление соединения с участием прокси-сервера 257

9.2. Установление соединения с участием сервера перенаправления 267

Глава 10. Транспортный уровень протокола SIP 273

10.1. Назначение транспортного уровня 273

10.2. Работа клиента при передаче запросов 274

10.3. Работа клиента при получении ответов 276

10.4. Работа сервера при получении запросов 277

10.5. Работа сервера при передаче ответов 278

10.6. Длина тела сообщения 279

10.7. Обработка ошибок.280

Глава 11. Протокол SIP-T для телефонии 281

11.1. Назначение и особенности протокола SIP-T 281

11.2. Сценарии организации взаимодействия 282

11.2.1. Применение SIP-T при транзите (ТфОП-IP-ТфОП) 282

11.2.2. Процедуры организации связи из ТфОП в IP-сеть 284

11.2.3. Процедуры организации связи из IP-сети в ТфОП 285

11.3. Компоненты протокола SIP-T.286

11.3.1. Использование протокола SIP.286

11.3.2. Процедуры инкапсуляции сигнальных сообщений 286

11.3.3. Процедуры преобразования сигнальных сообщений 289

11.3.4. Поддержка передачи сигнальных сообщений во время сеанса 290

11.4. Согласование содержимого сообщений протокола SIP 290

11.5. Процедуры обеспечения безопасности 293

Глава 12. Преобразование ISUP–SIP 294

12.1. Общие принципы взаимодействия 294

12.2. Требования к SIP при взаимодействии с ТфОП 295

12.2.1. Процедуры прозрачной передачи сообщений ISUP 295

12.2.2. Процедуры поддержки формата MIME 295

12.2.3. Процедуры передачи многочастотного набора DTMF295

12.2.4. Процедуры проключения речевых трактов в предответном состоянии 296

12.2.5. Обмен транзакциями во время активного сеанса 296

12.2.6. Поддержка механизмов обеспечения конфиденциальности 297

12.2.7. Информация о причинах, вызвавших передачу запроса CANCEL 297

12.3. Процесс обмена сообщениями 297

12.3.1. Установление соединения (быстрый ответ не используется) 298

12.3.2. Установление соединения (быстрый ответ). 299

12.3.3. Таймеры протокола SIP.300

12.3.4. Срабатывание таймера ISUP T9 302

12.3.5. Ошибки в сети SIP при установлении соединения 303

12.3.6. Перенаправление запросов в сети SIP 304

12.3.7. Установление соединения прерывается со стороны ТфОП306

12.4. Конечные автоматы SIP-T при взаимодействии ISUP-SIP 308

12.4.1. Начало получения адресной информации 308

12.4.2. Процедуры преобразования сообщения IAM в запрос INVITE 308

12.4.3. Сообщение 100 310

12.4.4. Сообщения группы 18х 310

12.4.5. Сообщения группы 2хх 312

12.4.6. Сообщения группы 3хх 313

12.4.7. Сообщения групп 4хх – 6хх 313

12.4.8. Преобразование кодов ответов SIP в коды событий ISUP 313

12.4.9. Получение сообщения REL 315

12.4.10. Срабатывания таймера ISUP T11 316

12.5. Примеры сценариев для случая соединения ТфОП – SIP 316

12.5.1. Успешное соединение абонента ТфОП с пользователем сети SIP 317

12.5.2. Соединение от абонента ТфОП к пользователю сети SIP, быстрый ответ 322

12.5.3. Соединение от абонента УПАТС к пользователю сети SIP327

12.5.4. Неуспешное установление соединения из ТфОП в сеть SIP. Пользователь не найден 331

12.5.5. Неуспешное установление соединения из ТфОП в сеть SIP. Линия занята 333

12.5.6. Неуспешное установление соединения. Линия занята. IAM содержит параметр interworking 336

12.5.7. Неуспешное установление соединения. Срабатывает таймер 339

12.5.8. Неуспешное установление соединения. Срабатывает таймер.

Прокси-сервер в режиме без сохранения состояния 342

12.5.9. Неуспешное установление соединения. Вызывающий абонент кладет трубку, не дождавшись установления соединения 344

Глава 13. Преобразование SIP–ISUP 349

13.1. Процесс обмена сообщениями 349

13.1.1. Установление соединения (быстрый ответ не используется) 349

13.1.2. Установление соединения (быстрый ответ). 351

13.1.3. Срабатывание таймера Т7 352

13.1.4. Срабатывание таймеров SIP 353

13.1.5. Ошибка установления соединения на стороне ТфОП 354

13.1.6. В сообщении АСМ содержится код причины 355

13.1.7. Пользователь SIP прерывает установление соединения 356

13.2. Конечные автоматы SIP-T при взаимодействии SIP-ISUP.358

13.2.1. Получение запроса INVITE 358

13.2.2. Процедуры преобразования INVITE в IAM359

13.2.3. Срабатывание таймера ISUP Т7 362

13.2.4. Получение сообщения CANCEL или BYE 362

13.2.5. Получение сообщения REL363

13.2.6. Преобразование кодов причины ISDN в коды ответов сети SIP364

13.2.7. Получение предварительного ответа ACM 367

13.2.8. Получение сообщения АСМ 367

13.2.9. Получение сообщений CON или ANM 368

13.2.10. Срабатывание таймера Т9 369

13.2.11. Получение сообщения CPG.369

13.2.12. Получение АСК370

13.3. Примеры сценариев и сообщений для вызовов SIP-ТфОП 370

13.3.1. Успешное соединение из сети SIP в ТфОП.371

13.3.2. Успешное соединение из сети SIP к абоненту УПАТС 378

13.3.3. Соединение из сети SIP в ТфОП в условиях перегрузки шлюза385

13.3.4. Cоединения из сети SIP в SIP с использованием ENUM Query 393

13.3.5. Неуспешное соединение из SIP в ТфОП: сообщение об ошибке из ТфОП 398

13.3.6. Неуспешное соединение из сети SIP в ТфОП: ТфОП отклоняет вызов, передавая REL с кодом причины 404

13.3.7. Неуспешное соединение из сети SIP в ТфОП: срабатывает таймер ожидания шлюзом сообщения ANM407

Глава 14. Формирование телефонных URI 413

14.1. Телефонные SIP URI 413

14.2. Процедура преобразования формата ISUP в формат tel URL 415

14.3. Процедура преобразования формата tel URL в формат ISUP 416

Глава 15. Преобразование, тестирование и реализация SIP 417

15.1. Подходы к преобразованию сигнализации SIP 417

15.2. Тестирование протокола SIP 421

15.3. Реализация услуг на базе SIP 422

15.4. PINT и SPIRITS 427

Глава 16. Quo Vadis? 430

16.1. Дальнейшее развитие SIP 430

16.2. SIP в мобильных сетях 3G 431

16.3. Работа с NAT 440

Список сокращений 443

Глоссарий 449

Литература 452

 

 

Обратно в Книги