Запити

Матеріал з Вікі ЦДУ
Версія від 10:52, 30 листопада 2010; Козінцев Олексій (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

7.5.3 Запити
У цієї версії протоколу SIP визначено шість типів запитів. Кожен з них призначений для виконання досить широкого кола завдань, що є явним достоїнством протоколу SIP, тому що завдяки цьому кількість повідомлень, якими обмінюються термінали і сервери, зведено до мінімуму. За допомогою запитів клієнт повідомляє про поточне місцезнаходження, запрошує користувачів взяти участь у сеансах зв'язку, модифікує вже встановлені сеанси, завершує їх і т.д. Сервер визначає тип прийнятого запиту по назві, зазначеній у стартовій рядку. У тому ж рядку в полі Request-URI вказаний SIP-адресу устаткування, якому цей запит адресований. Зміст полів Те і Request-URI може різнитися, наприклад, в полі То може бути вказаний публікується адресу абонента, а в полі Request-URI - поточний адресу користувача. Запит INVITE запрошує користувача взяти участь у сеансі зв'язку. Він зазвичай містить опис сеансу зв'язку, в якому вказується вид прийнятої інформації і параметри (список можливих варіантів параметрів), необхідні для прийому інформації, а також може вказуватися вид інформації, яку користувач, що викликається бажає передавати. У відповіді на запит типу INVITE вказується вид інформації, яка буде прийматися викликуваним користувачем, і, крім того, може вказуватися вид інформації, яку користувач, що викликається збирається передавати (можливі параметри передачі інформації).
У цьому повідомленні можуть міститися також дані, необхідні для аутентифікації абонента, і, отже, доступу клієнтів до SIP-сервера. При необхідності змінити характеристики вже організованих каналів передається запит INVITE з новим описом сеансу зв'язку. Для запрошення нового учасника до вже встановленому з'єднанню також використовується повідомлення INVITE.
Запит АСК підтверджує прийом відповіді на запит INVITE. Слід зазначити, що запит АСК використовується тільки разом із запитом INVITE, тобто цим повідомленням обладнання викликає користувача показує, що воно отримало остаточну відповідь на свій запит INVITE. У повідомленні АСК може міститися остаточний опис сеансу зв'язку, передане викликає користувачем.
Запит CANCEL скасовує обробку раніше переданих запитів з тими ж, що і в запиті CANCEL, значеннями полів Call-ID, To, From і CSeq, але не впливає на ті запити, обробка яких вже завершена. Наприклад, запит CANCEL застосовується тоді, коли проксі-сервер розмножує запити для пошуку користувача по декількох напрямках і в одному з них його знаходить. Обробку запитів, розісланих у всіх інших напрямках, сервер скасовує за допомогою повідомлення CANCEL.
Запитом BYE обладнання викликається чи що викликає користувача завершує з'єднання. Сторона, яка одержала запит BYE, повинна припинити передачу мовної (мультимедійної) інформації і підтвердити його виконання відповіддю 200 ОК.
За допомогою запиту типу REGISTER користувач повідомляє своє місце перебування. У цьому повідомленні містяться такі поля:

  • Поле Те містить адресну інформацію, яку треба зберегти або змінювати на сервері;
  • Поле From містить адресу ініціатора реєстрації. Зареєструвати користувача може або він сам, або інша особа, наприклад, секретар може зареєструвати свого начальника;
  • Поле Contact містить нову адресу користувача, за яким повинні передаватися всі подальші запити INVITE. Якщо в запиті REGISTER полі Contact відсутній, то реєстрація залишається колишньою. У разі скасування реєстрації тут міститься символ «*»;
  • У полі Expires вказується час у секундах, протягом якого реєстрація дійсна. Якщо дане поле відсутнє, то за замовчуванням призначається час - 1 годину, після чого реєстрація скасовується. Реєстрацію можна також скасувати, передавши повідомлення REGISTER з полем Expires, якому присвоєно значення О, і з відповідним полем Contact.

Запитом OPTIONS викликається користувач запитує інформацію про функціональні можливості термінального обладнання викликається користувача. У відповідь на цей запит обладнання викликається користувача повідомляє необхідні відомості. Застосування запиту OPTIONS обмежуватися тими випадками, коли необхідно дізнатися про функціональні можливості обладнання до встановлення з'єднання. Для встановлення з'єднання запит цього типу не використовується.
Після випробувань протоколу SIP у реальних мережах виявилося, що для вирішення ряду завдань вищевказаних шести типів запитів недостатньо. Тому можливо, що до протоколу будуть введені нові повідомлення. Так, в поточній версії протоколу SIP не передбачено спосіб передачі інформації управління з'єднанням або іншої інформації під час сеансу зв'язку. Для вирішення цього завдання було запропоновано новий тип запиту - INFO. Він може використовуватися в наступних випадках:

  • для перенесення сигнальних повідомлень ТфОП / ISDN / coTOBbix мереж між шлюзами протягом розмовної сесії;
  • для перенесення сигналів DTMF протягом розмовної сесії;
  • для перенесення білінгової інформації.

Завершивши опис запитів протоколу SIР, розглянемо, як приклад, типовий запит типу INVITE (рис. 7.6).
INVITE
sip: [email protected] SIP/2.0
Via: SIP/2.0/UDP kton.bell-tel.com
From:
A. Bell <sip: [email protected]>
To:
T. Watson <sip: [email protected]>
Call-ID: [email protected]
Cseq: 1
INVITE
Content-Type: application / sdp Content-Length: ...
v = 0
o = bell 53655765 2353687637 IN IР4 12 & .3.4.5
C = IN IP4 kton.bell-tel.com
m = audio 3456 RTP / AVP 0345
У цьому прикладі користувач Bell ([email protected]) викликає користувача Watson ([email protected]). Запит передається до проксі-сервера (boston.bell-tel.com). У полях Те і From перед адресою стоїть запис, яку викликає користувач бажає вивести на дисплей викликається користувача. У тілі повідомлення обладнання викликає користувача вказує у форматі протоколу SDP, що воно може приймати в порту 3456 мовну інформацію, упаковану в пакети RTP і закодовану по одному з наступних алгоритмів кодування: 0 - PCMU, 3 - GSM, 4 - G.723 та 5 - DVI4.
При передачі повідомлень протоколу SIP, упакованих в сигнальні повідомлення протоколу UDP, існує ймовірність того, що розмір запиту або відповіді виявиться більше максимально допустимого для даної мережі, і відбудеться фрагментація пакета. Щоб уникнути цього, використовується стиснутий формат імен основних заголовків, подібно до того, як це робиться в протоколі SDP, Нижче наведений список таких заголовків (Таблиця 7.3).
Таблиця 7.3 Стислі імена заголовків
При написанні імен заголовків у стислому вигляді повідомлення INVITE, показане раніше на малюнку 6, буде виглядати наступним чином:
INVITE
sip: [email protected] SIP/2.0
v: SIP/2.0/UDP kton.bell-tel.com
f:
A. Bell <sip: [email protected]>
t:
T. Watson <sip: [email protected]>
i: [email protected]
Cseq:1
INVITE з: application / sdp 1: ...
v = 0
o = bell 53655765 2353687637 IN IP4 128.3.4.5
C = IN IP4 kton.bell-tel.com
m = audio 3456 RTP / AVP 0345
На закінчення параграфа, як і в попередніх розділах, зведемо всі запити, з їх коротким описом, в таблицю 7.4.
Таблиця 7.4 Запити SIP


--Козінцев Олексій 36 гр. 16:42, 29 листопада 2010 (EET)