Лекція 5. Протокол SIP Доц. , к. т. н. Григоренко Олена Григорівна
Протокол SIP Загальні поняття сигналізації в мережах ІР-телефонії Принципи побудови протоколу SIP Інтеграція протоколу SIP з IP-мережами Адресація в протоколі SIP Архітектура мережі SIP Сценарій встановлення та завершення сеансу зв’язку за протоколом SIP • Приклади побудови мережі SIP з проксі-сервером та з сервером переадресації • • •
Загальні поняття сигналізації в мережах ІР-телефонії • Впровадження IP-телефонії залежить від забезпечення сумісності систем різних фірм. • Забезпечення сумісності можливо на базі стандартних протоколів сигналізації. • Протоколи сигналізації забезпечують встановлення, адміністрування та завершення сеансу зв'язку між кінцевими точками (користувачами), однозначно ідентифікованими заданою схемою адресації. • Поняття сигналізація відноситься до всієї інформації, пов'язаної з викликами і необхідної для їх встановлення, маршрутизації, моніторингу та завершення як на фізичному, так і на логічному рівні.
Загальні поняття сигналізації в мережах ІР-телефонії • У всіх сучасних мережах з комутацією каналів система сигналізації заснована на сімействі СКС № 7. • СКС № 7 забезпечує обмін повідомленнями, які необхідні для маршрутизації викликів, резервування ресурсів, трансляції адрес, встановлення з'єднань, управління ними, виставлення рахунків. Крім того, на мережі зв'язку України використовується ще багато інших систем сигналізації (аналогових і цифрових). • У системах IP-телефонії процедури управління викликами виконуються протоколами сигналізації, а безпосередня маршрутизація трафіку через IP-мережу забезпечується протоколами: OSPF або ВGР (резервування мережевих ресурсів можливо, наприклад, за допомогою протоколу RSVP). Таким чином, архітектура мережі IP-телефонії передбачає поділ площин управління і передачі інформації користувача, що є найбільш сприятливою умовою для впровадження нових послуг.
Управління викликами в мережах ІР-телефонії
Загальні поняття сигналізації в мережах ІР-телефонії • У загальному випадку для встановлення з'єднання між викликаючим абонентом і абонентом, що викликається, шлюзи IP-телефонії повинні: 1. знайти gatekeeper, на якому можлива реєстрація кінцевого пристрою 2. зареєструвати свою мнемонічну адресу на gatekeeper 3. вказати необхідну смугу пропускання 4. передати запит на встановлення з'єднання 5. встановити з'єднання 6. в процесі виклику управляти параметрами з'єднання 7. роз'єднати з'єднання • Для виконання цих операцій в даний час можуть використовуватися різні протоколи сигналізації
Механізми сигналізації IPтелефонії в протокольному стеку
Принципи побудови протоколу SIP • Протокол ініціювання сеансів (Session Initiation Protocol SIP) є протоколом прикладного рівня моделі OSI і призначається для організації, модифікації і завершення сеансів зв'язку (наприклад, мультимедійних конференцій, телефонних з'єднань). • Користувачі можуть брати участь в існуючих сеансах зв'язку, запрошувати інших користувачів і бути запрошеними до нового сеансу зв'язку. • Протокол SIP розроблений групою з управління багатоточковими сеансами мультимедіа-зв'язку MMUSIC комітету IETF, а специфікації протоколу представлені в документі RFC 2543.
Принципи побудови протоколу SIP • В основу протоколу закладені наступні принципи: 1. Персональна мобільність користувачів. Користувачі можуть переміщатися без обмежень у межах мережі. Користувачеві надається унікальний ідентифікатор, а мережа надає йому послуги зв'язку незалежно від того, де він знаходиться. 2. Масштабованість мережі. Характеризується можливістю збільшення кількості елементів мережі при її розширенні. Серверна структура мережі, побудована на базі протоколу SIP, відповідає цій вимозі.
Принципи побудови протоколу SIP 3. Можливість розширення протоколу. Характеризується можливістю доповнення протоколу новими функціями при введенні нових послуг і його адаптації до роботи з різними додатками • Розширення функцій протоколу SIP може бути вироблено за рахунок введення нових заголовків повідомлень, які повинні бути зареєстровані в організації IANA. При цьому якщо SIP-сервер приймає повідомлення з невідомими йому атрибутами, то він просто ігнорує їх. • Для розширення можливостей протоколу SIP можуть бути також додані і нові типи повідомлень
Принципи побудови протоколу SIP 4. Інтеграція в стек існуючих протоколів Інтернету, розроблених IETF. Протокол SIP є частиною глобальної архітектури мультимедіа, розробленої IETF. Ця архітектура включає в себе також і інші протоколи: резервування ресурсів (Resource Reservation Protocol RSVP, RFC 2205), транспортний протокол реального часу (Real-Time Transport Protocol - RTP, RFC 1889), протокол передачі потокової інформації в реальному часі (Real. Time Streaming Protocol - RTSP, RFC 2326), протокол опису параметрів зв'язку (Session Description Protocol - SDP, RFC 2327). Однак функції самого протоколу SIP не залежать ні від одного з цих протоколів. 5. Взаємодія з іншими протоколами сигналізації. Протокол SIP може бути використаний спільно з протоколом Н. 323
Інтеграція протоколу SIP з IP-мережами • Однією з найважливіших особливостей протоколу SIP є його незалежність від транспортних технологій. • Але в той же час перевага віддається технології маршрутизації пакетів IP і протоколу UDP. • Слід зазначити, що для цього необхідно створити додаткові механізми надійної доставки сигнальної інформації. До таких механізмів відносяться повторна передача інформації при її втраті, підтвердження прийому і ін.
Інтеграція протоколу SIP з IPмережами • Сигнальні повідомлення можуть переноситися як протоколом транспортного рівня UDP, так і протоколом TCP. • Протокол UDP дозволяє швидше, ніж TCP, доставляти сигнальну інформацію (навіть з урахуванням повторної передачі непідтверджених повідомлень), а також вести паралельний пошук місця розташування користувачів і передавати запрошення до участі в сеансі зв'язку в режимі багатоадресної розсилки. • У свою чергу, протокол TCP спрощує роботу з міжмережевими екранами (firewall), а також гарантує надійну доставку даних. При використанні протоколу TCP різні повідомлення, які відносяться до одного виклику, можуть або передаватися по одному TCP-з'єднанню, або для кожного запиту і відповіді на нього може відкриватися
Інтеграція протоколу SIP з IPмережами • Мережею з маршрутизацією пакетів IP може передаватися інформація користувача практично будь -якого виду: мова, відео та дані, а також будь-яка їх комбінація. • При організації зв'язку між терміналами користувачів необхідно повідомити зустрічній стороні, якого роду інформація може прийматися (передаватися), алгоритм її кодування і адресу, на яку слід передавати інформацію. • Таким чином, однією з обов'язкових умов організації зв'язку за допомогою протоколу SIP є обмін між сторонами даними про їх функціональні можливості. • Для цієї мети найчастіше використовується протокол опису сеансів зв'язку - SDP (Session Description Protocol).
Інтеграція протоколу SIP з IP-мережами • Оскільки протягом сеансу зв'язку може проводитися його модифікація, передбачена передача повідомлень SIP з новими описами сеансу засобами SDP. • Для передачі мовної інформації комітет IETF пропонує використовувати протокол RTP, але сам протокол SIP не виключає можливість застосування для цих цілей і інших протоколів.
Інтеграція протоколу SIP з IP-мережами • Протокол SIP передбачає організацію конференцій трьох видів: qв режимі під багатоадресної розсилки (multicasting), коли інформація передається на одну multicast-адресу, звідки потім доставляється мережею кінцевим адресатам; qза допомогою контролера управління конференціями (MCU), до якого учасники конференції передають інформацію в режимі "точка-точка", а контролер обробляє інформацію (тобто змішує або комутує) і розсилає її учасникам конференції; qшляхом з'єднання кожного користувача з кожним в режимі "точка-точка". • Протокол SIP дає можливість приєднання нових учасників до вже існуючого сеансу зв'язку, тобто двосторонній сеанс може перейти в конференцію
Адресація • Для організації взаємодії з існуючими додатками IP-мереж і для забезпечення мобільності користувачів протокол SIP використовує адресу, подібну до адреси електронної пошти. • В якості адрес робочих станцій використовуються спеціальні універсальні покажчики ресурсів - так звані SIP URL (Universal Resource Locators). • SIP-адреси бувають чотирьох типів: q ім'я @ домен; q ім'я @ хост; q ім'я @ IР-адреса; q №телефона @ шлюз
Адресація • Таким чином, адреса складається з двох частин. • Перша частина - це ім'я користувача, зареєстрованого в домені або на робочій станції. Якщо друга частина адреси ідентифікує будь-який шлюз, то в першій вказується телефонний номер абонента. • У другій частині адреси вказується ім'я домену, робочої станції або шлюзу. Для визначення IP-адреси пристрою необхідно звернутися до служби доменних імен - Domain Name Service (DNS). Якщо ж у другій частині SIP-адреси розміщується IP-адреса, то з робочою станцією можна зв'язатися безпосередньо
Адресація • На початку SIP-адреси ставиться слово "sip: ", яке вказує, що це SIP-адреса. • Приклади SIP-адрес: qsip: als@rts. loniis. de qsip: user 1@192. 168. 100. 152 qsip: 294 -75 -47@gateway. ua
Спрощена архітектура SIP-протоколу «клієнт-сервер»
Архітектура мережі SIP • Клієнт видає запити, в яких вказує, що він бажає отримати від сервера. Сервер приймає запит, обробляє його і видає відповідь, яка може містити qповідомлення про успішне виконання запиту, qповідомлення про помилку або qінформацію, яку потребує клієнт. • Управління процесом обслуговування виклику розподілено між різними елементами мережі SIP. • Основним функціональним елементом, що реалізує функції управління з'єднанням, є термінал. • Інші елементи мережі відповідають за маршрутизацію викликів, а в деяких випадках надають додаткові послуги.
Архітектура мережі SIP • У протоколі SIP встановлюються наступні основні компоненти: q Термінал. q Проксі-сервер. q Сервер переадресації q Сервер визначення місця розташування користувачів.
Термінал • У разі, коли клієнт і сервер взаємодіють безпосередньо з користувачем, вони називаються, відповідно, qклієнтом агента користувача - User Agent Client (UAC) і qсервером агента користувача - User Agent Server (UAS).
Проксі-сервер • Проксі-сервер приймає запити, обробляє їх і, в залежності від типу запиту, виконує певні дії. • Це може бути пошук і виклик користувача, маршрутизація запиту, надання послуг і т. п. • Проксі-сервер складається з клієнтської і серверної частин, тому може приймати виклики, ініціювати власні запити і повертати відповіді. • Проксі-сервер може бути фізично суміщений з сервером визначати своє місцезнаходження або існувати окремо від нього
Типи проксі-серверів • Передбачено два типи проксі-серверів – q зі збереженням станів (stateful) і q без збереження станів (stateless).
Сервер зі збереженням станів • Цей сервер зберігає в пам'яті вхідний запит, який став причиною генерації одного або декількох вихідних запитів. • Ці вихідні запити сервер також запам'ятовує. • Всі запити зберігаються в пам'яті сервера тільки до закінчення транзакції, тобто до отримання відповідей на запити. • Він дозволяє надати більшу кількість послуг, але працює повільніше, ніж сервер другого типу. • Він може застосовуватися для обслуговування невеликої кількості клієнтів, наприклад, в локальній мережі.
Сервер зі збереженням станів • Проксі-сервер повинен зберігати інформацію про стани, якщо він: q використовує протокол TCP для передачі сигнальної інформації; q працює в режимі багатоадресної розсилки сигнальної інформації; q розмножує запити. • Останній випадок має місце, коли проксі-сервер веде пошук користувача, що викликається, відразу в декількох напрямках, тобто один запит, який прийшов до проксі-сервера, розмножується і передається одночасно по всіх цих напрямках
Сервер без збереження станів • Сервер без збереження станів просто ретранслює запити і відповіді, які отримує. • Він працює швидше, ніж сервер першого типу, так як ресурс процесора не витрачається на запам'ятовування станів, внаслідок чого сервер цього типу може обслужити більшу кількість користувачів. • Недоліком такого сервера є те, що на його базі можна реалізувати лише найбільш прості послуги. • Втім, проксі-сервер може функціонувати як сервер зі збереженням станів для одних користувачів і як сервер без збереження станів - для інших.
Алгоритм роботи користувачів з проксісервером виглядає наступним чином • Постачальник послуг IP-телефонії повідомляє адресу проксі-сервера своїм користувачам. • Викликаючий користувач передає до проксі-сервера запит з'єднання. • Сервер обробляє запит, визначає місце розташування користувача, що викликається, і передає запит цьому користувачу, а потім отримує від нього відповідь, що підтверджує успішну обробку запиту, і транслює цю відповідь користувачеві, який передав запит. • Проксі-сервер може модифікувати деякі заголовки повідомлень, які він транслює, причому кожен сервер, який обробив запит в процесі його передачі від джерела до приймача, повинен вказати це в SIP-запиті для того, щоб відповідь на запит повернулася тим же шляхом.
Сервер переадресації • Сервер переадресації призначений для визначення поточної адреси користувача, що викликається. • Викликаючий користувач передає серверу повідомлення з відомою йому адресою користувача, що викликається, а сервер забезпечує переадресацію виклику на поточну адресу цього користувача. • Для реалізації цієї функції сервер переадресації повинен взаємодіяти з сервером визначення місцеположення.
Сервер визначення місця розташування користувачів • Користувач може переміщатися в межах мережі, тому необхідний механізм визначення його місця розташування в поточний момент часу. • Для зберігання поточної адреси користувача служить сервер позиціонування користувачів, що представляє собою базу даних адресної інформації. Крім постійної адреси користувача, в цій базі даних може зберігатися одна або кілька поточних адрес. • Цей сервер може бути поєднаний з проксі-сервером або бути реалізований окремо від проксі-сервера, але мати можливість зв'язуватися з ним
Приклад побудови SIP-мережі Мережі SIP зазвичай будуються з елементів трьох основних типів: терміналів, проксі-серверів і серверів переадресації
Приклад SIP-мережі • Термінали можуть бути двох типів: 1. Персональний комп'ютер зі звуковою платою і програмним забезпеченням SIP-клієнта. 2. SIP-телефон, що підключається безпосередньо до ЛОМ Ethernet. • Шляхом програмування сервер можна налаштувати на різні алгоритми роботи: він може обслуговувати частину користувачів за одними правилами, а іншу частину - за іншими.
Процедури запитів у SIP-мережі • У протоколі SIP визначені два види сигнальних повідомлень - запит і відповідь. Вони мають текстовий формат і базуються на протоколі HTTP. • У запиті зазначаються процедури, що викликаються для виконання необхідних операцій, а у відповіді - результати їх виконання. Визначено шість процедур: q INVITE - запрошує користувача взяти участь в сеансі зв'язку (служить для встановлення нового з'єднання; може містити параметри для узгодження); q BYE - завершує з'єднання між двома користувачами; q OPTIONS - використовується для передачі інформації про підтримувані характеристики (ця передача може здійснюватися безпосередньо між двома агентами користувачів або через сервер SIP);
Процедури запитів у SIP-мережі q АСК - використовується для підтвердження отримання повідомлення або для позитивної відповіді на команду INVITE; q CANCEL - припиняє пошук користувача; q REGISTER - передає інформацію про місцезнаходження користувача на сервер SIP, який може транслювати її на сервер адрес (Location Server)
Відповіді на запити • Визначено 6 типів відповідей, що мають різне функціональне навантаження • Тип відповіді кодується трицифровим числом • Перша цифра визначає клас відповіді, дві інші лише доповнюють її • Всі відповіді поділяються на дві групи: інформаційні та фінальні • Інформаційні відповіді показують, що запит перебуває у стадії обробки. Вони кодуються трицифровим числом, що починається з одиниці, і мають вигляд 1 хх • Наприклад, відповідь 100 Trying, призначена для встановлення на нуль таймерів, які запускаються в устаткуванні, що передало запит. Якщо до моменту спрацьовування таймера відповідь на запит не отримано, то вважається, що цей запит втрачений і може бути переданий повторно • Одна з поширених відповідей 180 Ringing означає, що користувач, який викликається, отримує сигнал про вхідний виклик
Відповіді на запити • Фінальні відповіді кодуються трицифровими числами, що починаються з цифр 2, 3, 4, 5, 6 • Відповіді виду 2 хх означають, що запит було успішно оброблено. • Визначено лише одну відповідь 200 ОК, яка означає ØНа запит INVITE, що устаткування , яке викликається, дає згоду на участь у сеансі зв’язку (у тілі відповіді зазначаються функціональні можливості цього устаткування) ØНа запит BYE, що сеанс зв’язку завершений (у тілі відповіді немає жодної інформації) ØНа запит CANCEL, що пошук відмінено (у тілі відповіді немає жодної інформації) ØНа запит REGISTER, що реєстрація відбулася успішно ØНа запит OPTION, що передаються відомості про функціональні можливості устаткування у тілі відповіді
Відповіді на запити • Відповіді виду 3 хх інформують устаткування користувача про нове місцезнаходження користувача, що викликається, або містять іншу інформацію, якою можна скористатися для нового виклику • Наприклад, відповідь 300 Multiple Choice вказує кілька SIPадрес, за якими можна знайти користувача, що викликається, і пропонує обрати одну з них • Відповіді 4 хх інформують про те, що в запиті виявлено помилку. Після отримання такої відповіді користувач не повинен передавати той самий запит без його модифікації • Наприклад, відповідь 400 Bad Request означає, що запит незрозумілий через наявність у ньому синтаксичних помилок
Відповіді на запити • Відповіді виду 5 хх інформують про те, що запит не може бути оброблений через відмову сервера • Наприклад, відповідь 500 Server Internal Error означає, що сервер не має змоги виконати обслуговування запиту через внутрішню помилку. Клієнт може спробувати повторно надіслати запит через деякий час • Відповіді 6 хх інформують про те, що з’єднання з користувачем, що викликається, установити неможливо • Наприклад, відповідь 600 Busy Everywhere повідомляє, що користувач, який викликається, зайнятий і не може прийняти виклик у даний момент за жодною з адрес, що є у нього. Відповідь може вказувати прийнятний для виклику час
Можливий сценарій встановлення та завершення сеансу зв’язку за протоколом SIP
Переадресація з'єднання у SIP • Термінали в протоколі SIP - це кінцеві пристрої, що забезпечують двосторонній зв'язок у реальному часі з іншим пристроєм, але, на відміну від терміналів, описаних в рекомендаціях Н. 323, термінали SIP виконують функції шлюзу. • Проксі-сервер приймає запит від терміналів і обробляє його, після чого відправляє далі: або на інший проксісервер, або до кінцевого терміналу. • Крім того, проксі-сервер обробляє всі запити і відповіді від імені того терміналу (або іншого проксі), запит від якого обробляється в даний момент. Таким чином, проксісервер виступає посередником між двома терміналами.
Переадресація з'єднання у SIP • Сервер переадресації отримує запити від терміналу (проксі -серверів), обробляє їх і повертає цьому терміналу оброблену інформацію, необхідну для подальшої маршрутизації виклику. • Потім термінал (проксі) безпосередньо встановлює з'єднання, відповідно до адреси, вказаної сервером переадресації. • Існує також і безсерверний варіант з'єднання, коли один термінал може посилати запити безпосередньо іншому терміналу.
Переадресація з'єднання у SIP • Крім того, в мережах SIP використовуються сервери розташування (location server). • Принципи його роботи не входять до рекомендації SIP. • Сервер SIP після прийняття запиту звертається до сервера позиціонування для того, щоб дізнатися адресу, за якою можна знайти користувача; • сервер позиціонування у відповідь або повідомляє список можливих адрес розташування користувача, або інформує про неможливість знайти їх
Структурна схема мережі SIP з проксі-сервером
Приклад SIP-мережі • У мережі з проксі-сервером для успішного встановлення двостороннього з'єднання між ініціюючою і приймаючою сторонами буде необхідно зробити наступні послідовні кроки: 1. Проксі-сервер приймає запит INVITE від ініціюючої сторони. 2. Проксі-сервер визначає місцезнаходження клієнта, використовуючи надані послуги адресації і визначення місцезнаходження. 3. За знайденою адресою видається запит INVITE від сервера до приймаючої сторони. 4. Сторона, що викликається, повідомляє викликаючу сторону і повертає назад вказівку про успіх проксі-сервера. 5. Від проксі-сервера до сторони, що викликає, відправляється повідомлення-відповідь "Все в порядку" (код 200). 6. Викликаюча сторона підтверджує прийом повідомленнявідповіді видачею запиту ACK, який проксі-сервер відправляє безпосередньо до сторони , що викликається.
Архітектура мережі SIP з сервером переадресації
У мережі SIP з сервером переадресації для успішного встановлення двостороннього з'єднання необхідно виконати наведені послідовні кроки: 1. Сервер переадресації приймає запит INVITE від викликаючої сторони (Бориса) і визначає місцезнаходження (Єгора) за наданою інформацією. 2. Після цього сервер переадресації повертає адресу викликаючій стороні. На відміну від проксі-сервера, сервер переадресації не видає INVITE. 3. Викликаюча сторона відправляє ACK до сервера переадресації, підтверджуючи завершену транзакцію. 4. Викликаюча сторона (Борис) відправляє запит INVITE безпосередньо Єгору. 5. Сторона, що викликається, надає вказівку про сприятливе встановлення з'єднання (реакція "Все в порядку" з кодом статусу 200). А викликаюча сторона повертає ACK.
Особливості використання SIP • Підхід, заснований на використанні протоколу SIP, орієнтований на інтеграцію послуги передачі мовного трафіку IP-мережами з іншими послугами Інтернету. • Цей підхід є набагато простішим для реалізації в порівнянні з H. 323, але менше підходить для організації взаємодії зі звичайними телефонними мережами. • В основному це пов'язано з тим, що сигнальний протокол SIP, який базується на основі протоколу HTTP, погано узгоджується з системами сигналізації, що використовуються в ТМЗК.
Особливості використання SIP • Крім того, сервер SIP в загальному випадку не зберігає відомостей про поточні з'єднання (Stateless), в той час як вузли ТМЗК, навпаки, зберігають інформацію про всі встановлені з'єднання (Statefull). • Другий варіант більше підходить для постачальників послуг Інтернету для надання ще однієї послуги - інтернет -телефонії. • Ця послуга буде всього лише невеликою частиною пакета послуг і буде надаватися, наприклад, за фіксованими тарифами, при цьому буде використовуватися максимально спрощена схема управління послугами