SoftPhone. Система голосових дзвінків

 

АНОТАЦІЯ

Завданням даної роботи є написанням програмного  продукту , який дозволить здійснювати  дзвінки між комп'ютерами безкоштовно. В даній роботі застосовується технологія SIP, яка надає змогу здійснювати дзвінки з любої точки землі в якій є доступ до інтернету . Даний продукт повинний працювати на ОС Windows XP і вище.

Детальну  уваги ми будемо надавати бібліотеці SIP, за допомогою якої ми розробимо  програмний продукт для здійснення дзвінків.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ABSTRACT

 

The aim of this work is to write software that will allow free calls between computers. In this work the technology of SIP is used, which allows you to make calls from any point of the world where there is access to the internet. This product should work on Windows XP and above.

More attention we give SIP library , by which we develop software to make calls.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗМІСТ

ВСТУП 9

Розділ 1. IP - ТЕЛЕФОНІЯ і SIP ПРОТОКОЛ 13

1.1.  Історія розвитку ІР - телефонії 13

1.2.  Принцип дії ІР - телефонії 13

1.3. Якість Зв'язку ІР - телефонії 14

1.4. Протокол SIP 16

1.5.Можливості протоколу SIP 17

1.6. Повідомлення SIP 18

1.7.  Приклад встановлення з'єднання 20

1.8.Мережа на базі протоколу SIP 22

1.9. Висновок до першого розділу 26

2. ВИБІР ЗАСОБІВ ДЛЯ РЕАЛІЗАЦІЇ ПРОГРАМИ 27

2.1. Вибір мови програмування 27

2.2. Опис мови програмування і її основні елементи 27

2.3. Структура програми 29

2.4. Характеристики Delphi SIP Component 31

2.5. Вимог до апаратних 32

2.6. Призначення програми 32

2.7. Вимоги до програми загалом 32

2.8. Розробка узагальненого алгоритму функціонування програми 33

2.9. Висновок до другого розділу 35

3. ПРОГРАМНА РЕАЛІЗАЦІЯ СИСТЕМИ 36

3.1.  Розробка архітектури програмного рішення 36

3.1.1. MainForm - головне вікно 36

3.1.2 DialForm  - форма дизайну і розташування всіх компонентів 37

3.1.3 AudiFrm - форма налаштування  звуку. 38

3.1.4 AccountsFrm - форма налаштування користувачів. 39

3.2.  Проектування інтерфейсу користувача 40

3.2.1 Головне вікно 40

3.2.2 Вікно "Account Settings" 41

3.2.3 Вікно "Audio Settings" 43

3.2.4 Вікно "About" 43

3.2.5 Розробка діаграм функцій для програми. 44

3.3. Тестування роботи програми 51

3.4. Висновок до третього розділу 53

4. Економічна частина 54

4.1. Розрахунок витрат на розробку та впровадження проектного рішення 54

4.3. Визначення комплексного показника якості 60

4.4. Визначення експлуатаційних витрат 62

4.5. Розрахунок ціни споживання проектного рішення 64

4.6. Визначення показників економічної ефективності 65

4.6.1. Показник конкурентоздатності: 65

4.6.2.  Економічний ефект в сфері проектування рішення: 65

4.6.3. Економічний ефект в сфері експлуатації : 65

4.6.4. Оскільки Епр>0 і Еекс>0, розраховуємо додатковий економічний ефект в сфері проектування: 66

4.6.5. Сумарний ефект 66

4.7.Висновок до четвертого розділу 67

ВИСНОВОК 68

ВИКОРИСТАНІ ЛІТЕРАТУРНІ ДЖЕРЕЛА 69

ДОДАТОК А. КОД ПРОГРАМИ 70

ДОДАТОК Б. ЗНІМКИ ЕКРАНІВ ПРОГРАМИ 96

 

 

 

 

 

 

 

 

ВСТУП

Останім часом все ширше стає застосовуватись мережі Інтернет. І  якщо років 10 тому аналітики заперечували можливість передачі голосу і відео  через мережу Інтернет, то сьогодні їхні погляди на ці речі повністю змінились. Наприклад, з прогнозу дослідницької  фірми Analysys у 2003 році на Інтернет-телефонію буде припадати 36% всіх міждународних переговорів.

Великим поштовхом для прогресивного  розвитку Інтернет-телефонії стало  те що використання мережі Інтернет для  передавання голосових і відео  повідомлень є досить зручним  і є набагато дешевшим чим звичайний  телефоний дзвінок.

ІР - телефонія , за допомогою Інтернету дозволяє організовувати   дзвінки між комп'ютерами . В ІР - телефонії використовуються канали зв'язку мережі Інтернет. При розмові наші голосові сигнали перетворюються в пакети даних  які стискаються. Після цього пакети даних посилаються через мережу Інтернет. Коли пакети даних досягають свого адресата , вони декодуються в голосові сигнали.

В простому  телефонному дзвінку зв'язок між двома розмовниками  установлюється через телефону станції . Тоді голосові сигнали передаються виключно по телефонних лініях , через спеціально виділене підключення. А при розмові через Інтернет , стиснуті пакети даних поступають в Інтернет з адресом приймача. Кожен пакет проходить свій шлях по адресату , різними маршрутами. Для адресата, пакети даних перегруповуються і декодуються в голосове повідомлення. В ІР - телефонії використовується замість лінії передачі звичайний канал Інтернету.

Звичайні телефонні дзвінки вимагають розгалуженої мережі зв'язку телефонних станцій, пов'язаних закріпленими телефонними лініями, підведення волоконно-оптичних кабелів і супутників зв'язку. Високі витрати телефонних компаній приводять нас до дорогих міжміських розмов. Виділене підключення телефонної станції також має багато надмірної продуктивності або часу простою протягом мовного сеансу.

IP - телефонія частково грунтується на існуючій мережі закріплених телефонних ліній. Але головне, вона використовує саму передову технологію стиснення наших голосових сигналів, і повністю використовує місткість телефонних ліній. Тому пакети даних від різних запитів, і навіть різні їх типи, можуть переміщатися по одній і тій же лінії в один час.

Тому  при використанні ІР - телефонії , ми заощаджуємо наші кошти на розмови і використовуємо передові технології. Також IP - телефонія є досить зручним способом для спілкування в будь якій точці світу де є мережа інтернет , і якщо лінія інтернет є високошвидкісною то якість зв'язку не буде погіршений.

На  даний момент досить стрімко розвивається протокол IP - телефонії SIP (Session Initiation Protocol).

SIP - є протоколом встановлення сесії, також він є протоколом прикладного рівня, розроблений IETF MMUSIC Working Group, і пропонований стандарт на спосіб установки, зміни і завершення користувацького сеансу, що включає мультимедійні елементи, такі як відео або голос, миттєві повідомлення (instant messaging)

Цей протокол можна сказати є досить новим протоколом , і зручнішим від його попередників, також він має більш розширенні можливості, які дозволяють робити необмежений функціонал для дзвінків. Також він витрачає менше часу для встановлення з'єднання так як вся потрібна інформація передається в одному запиті  відміно від його попередників, коли потрібно було посилати і приймати декілька запитів.  

Протокол SIP не зберігає інформації про сеанси зв'язку які відбуваються і тому може опрацьовувати більше  викликів ніж його попередники. Також цей протокол визначає багаторівневий стек, який включає мережний рівень, транспортний рівень, рівень транзакції, необов'язковий рівень діалогу і власне прикладний рівень, або рівень послуги. Однак ці рівні є упрощеними від його попередників. Мережевий рівень протоколу SIP забезпечує зв'язок і взаємодію з відповідним протоколом мережні Інтернет (IP),що б кожен елемент SIP зв'язувався по Інтернету. Транспортний рівень визначає, як клієнт посилає запит і приймає відповіді і як сервер приймає і посилає відповіді по мережі. Сервер протоколу SIP являє собою мережевий елемент, який приймає запити, щоб обслужити їх і посилає назад відповіді на ці запити. Транспортний рівень відповідає також за формування повідомлень SIP і їх передачу по мережі. Наступним рівнем протоколу SIP є рівень транзакцій. Транзакцією називається запит, що посилається рівнем транзакцій клієнта (за допомогою транспортного рівня) рівню транзакцій сервера разом з усіма відповідями на запити. Рівень транзакцій відповідальний за узгодження послідовності повідомлень і за повторну передачу і фільтрацію дублюючих повідомлень протоколу SIP при ненадійності транспортного рівня. У будь-якій задачі, виконуваної клієнтом агента користувача, застосовується послідовність транзакцій. Рівень, що знаходиться над рівнем транзакцій, - це користувач транзакцій або рівень послуг. Інакше кажучи, це додаток, запускається на самому верхньому рівні стека протоколу SIP, який забезпечує конкретні функцї.

Отже  можна зробити висновок що протокол SIP на даний момент є одним із простіших  і надійних протоколів які дозволяють розробити програмне рішення  для  звукового і відео спілкування, затрачуючи менший час на розробку програми.

Для  вирішення питання актуальності написання програми було взято вже  готовий продукт, який був проаналізований. Для прикладу розглянемо один з найпопулярніших  продуктів.

Програма "Sippoint", має змогу використовувати  як аудіо так і відео дзвінки. Також вона може здійснювати дзвінки  на мобільні і стаціонарні телефони (при цьому потрібно завчасно поповнити баланс на обліковому засобі), детально  зберігаєти історію про здійснені і прийняті дзвінки. Також можна зберігати телефону книгу. Ця програма також використвою вище згаданий SIP протокол, і має свій власний SIP сервер,  посилання на цей продук: http://www.sipnet.net/.  В додатку наведено знімки програми "Sippoint".

Проте, у програмі «Sippoint» є незначні недоліки:

  • Програма  має великий розмір
  • Програму потрібно інсталювати
  • Користувач може працювати тільки із сервером який  підтримує програмний продукт
  • Потребує значних ресурсів
  • Інтерфейс  є досить заплутаний для непідготовленого користувача, отже на те щоби розібратися з інтерфейсом потрібно потратити час, що би прочитати детально документацію.

В результаті проведеного аналізу встановлено, даний програмний засіб має  більш розширений функціонал, але також є ряди недоліків , які є досить значними. Особливим недоліком є те що програмні продукти переважно будуть працювати тільки з тим сервером який випустив даний програмний продукт, а також що цю програму потрібно встановлювати на комп'ютер, портативної версії я не знайшов від цього виробника.

 

 

Розділ  1. IP - ТЕЛЕФОНІЯ і SIP ПРОТОКОЛ

1.1.  Історія розвитку ІР - телефонії

Концепція передачі голосу по мережі за допомогою професійного комп'ютера зародилася в Університеті штату Іллінойс (США). У 1993 році Чарлі Кляйн випустив у світ Maven, першу програму для  розпізнавання голосу за допомогою ПК. Одночасно одним з найпопулярніших мультимедійних додатків в мережі стала CU-SeeMe, програма відео конференцій для Macintosh (Macі). 
  Одночасно спробували передавати відео і звук. Отриманий сигнал з Льюїсовського дослідного центру поступав на Має, зв'язаний з Інтернетом, і будь-хто міг почути голоси астронавтів. Потім одну програму вбудували в іншу, і з'явився варіант CU-SeeMe з повними функціями аудіо і відео, як для Має, так і для ПК.

З часом передача відео і голосу стала популярною темою , так як можна  було спілкуватися безплатно з людьми які находяться  в різних куточках світу.

1.2.  Принцип дії ІР - телефонії

Загальний принцип дії серверів ІР - телефонії  такий: з одного боку ,сервер зв'язаний з телефонними лініями і може зв'язатись з будь яким телефоном  в світі. З другого боку , сервер зв'язаний з Інтернетом і може зв'язатись  з любим комп'ютером  в світі. Сервер приймає стандартні телефоні сигнали , оцифровує їх , стискає , розбиває на пакети і відправляє через Інтернет по  призначенню через протоколи TCP/IP. Для пакетів які приходять  із мережі на телефонний сервер і потім  які направляються в телефону лінію, операції виконуються  заду наперед. Ці операції виконуються майже одночасно , що забезпечує безперервну розмову. На основі цих базових операцій можна розробити багато різних конфігурацій. Наприклад дзвінок між комп'ютером і телефоном або на оборот може забезпечити один телефонний сервер. (Рис 1.)

 


 

 

 

 

 

Рис. 1.1. Система дзвінків комп'ютер - телефон і навпаки

Міжміський зв'язок здійснюється за допомогою телефонних серверів, організація або оператор послуги повинні мати сервер в тих місцях, куди і звідки плануються дзвінки. Вартість такого зв'язку на порядок менше вартості телефонного дзвінка по звичайних телефонних лініях[2].

1.3. Якість Зв'язку ІР - телефонії

Телефонна мережа була створена таким чином щоб гарантувати якість зв'язку навіть при великих навантаженнях , але для ІР - телефонії це не сумісно. Коли є великі навантаження  зв'язок в ІР - телефонії погіршується.

Якість  зв'язку можна оцінити наступними характеристиками:

- Рівень спотворення голосу;

- Частота голосових пакетів;

  - Час затримки

  По першим двом характеристикам якість зв'язку значно покращилась в порівнянні з першими версіями ІР - телефонії,  які допускали спотворення голосу і переривання розмови. Покращення кодування голосу і відновлення втрачених пакетів дозволило  досягнути рівня коли розмова стає легко зрозумілою для користувачів. Зрозуміло що затримки при розмові впливають на темп розмови , але  коли затримка менша ніж 250мс  то ми її не замічаємо. Але при сьогоднішніх затримках зв'язок похожий на звичайну телефону розмову.

Затримку  можна зменшити за допомогою 3-х факторів:

-  по - перше, удосконалюються телефонні сервери;

-  по - друге, розвиваються приватні мережі;

- по - третє розвивається сама мережа Інтернет - сучасний Інтернет не був розрахований на комунікації в режимі реального часу.

Оцінити якість при використані різних протоколів стиснення можна різними способами. Один з підходів є суб'єктивний метод. В суб'єктивних методах група людей оцінює якість зв'язку по стандартні процедурі. Самий популярний суб'єктивний метод це метод загальної думки. В цьому методі до увага береться оцінка групи людей і виводиться середнє арифметичне .

Внизу приведена таблиця оцінок , які поставили експерти , вони коливаються від 1 до 5.

Таблиця 1.1.

Оцінки якості зв'язку

Якість оцінки

Висока

4.0 - 5.0

Стандартна телефонна

3.5 – 4.0

Допустима

3.0 – 3.5

Синтезований звук

2.5 – 3.0


 

На  рис. 1.2 показано графік оцінки загальної думки популярних кодерів - декодерів звуку.

По  горизонтальні осі відкладена потрібна ширина каналу для передачі голосу , стиснута певний кодером ,по вертикалі - оцінка.

Рис. 1.2.  Залежність якості зв'язку від ширини каналу пропускання

Затримки  є головною проблемою ІР - телефонії. Є декілька причин їх появи. Одні з  них пов'язані з принципом побудови TCP/IP мережі і особливо комутацією пакетів, інші залежать від  завантаженості мережі , якості лінії зв'язку і скорості модема. Якщо затримка більша ніж 250 мс, то вона стає помітною. Оскільки програма в суть розмови не вникає, тому паузи можуть виникати хаотично, найчастіше на півслові. Закінчення пролунає  після секундної затримки. Покращити якість звуку можна коли придбати  кращий модем і вибрати нового провайдера який забезпечить більшу швидкість.

Для того що би покращити якість зв'язку , розробляються нові алгоритми стискання. Це один з провідних способів покращення зв'язку.

1.4. Протокол SIP

Протокол SIP (Session Initiat Protocol, протокол установки з'єднання) не є першопрохідцем в області IP-телефонії. Протокол H.323 вже давно використовується для цілей IP-телефонії, проте спочатку він не розроблявся для IP-мереж, що знижує "оптимальність" їх спільної роботи. За роки роботи з протоколом H.323 накопичений великий досвід використання, який дозволив виявити як його позитивні риси, так і недоліки, які були враховані при розробці протоколу SIP.

Протокол H.323 використовує двійковий формат. Одним з наслідків цього є необхідність стандартизації всіх можливостей даного протоколу, оскільки у разі якщо певна можливість не підтримується пристроєм, то такі пристрої із двійкового формату не зможуть працювати один з одним. SIP-протокол використовує текстовий формат повідомлень, якщо одному з пристроїв не знайомий певний тип повідомлення або заголовка, то воно просто ігнорується (як і в HTTP, який за своїм форматом дуже схожий формат протоколу SIP). До того ж сам протокол SIP значно простіший ніж H.323.

1.5.Можливості протоколу SIP

Основні переваги SIP

1. Масштабованість - можливість збільшення кількості клієнтів при розширенні мережі.

2. Мобільність - можливість отримання сервісу незалежно від місцеположення (як наприклад електронна пошта), а кожному користувачеві видається персональний ідентифікатор, по якому він може бути знайдений.

3. Розширюваність - можливість доповнення протоколу новими функціями (за рахунок введення нових заголовків і повідомлень). Як вже говорилося вище, якщо пристрою зустрічається невідоме йому розширення протоколу, воно просто ігнорується. Так як протокол H.323 використовує повідомлення двійкового формату, то невідомі функції можуть привести до неможливості надання сервісу.

Протокол SIP розроблявся з розрахунком на можливість використання будь-яких транспортів, але, тим не менше, найбільш переважним є використання UDP-пакетів (це дозволяє підвищити продуктивність в порівнянні з використанням протоколу TCP, але вимагає використання додаткових механізмів перевірки доставки сигнальних повідомлень).

Так як телефонія з використанням протоколу SIP дозволяє використовувати велику кількість різноманітних сервісів (крім передачі голосу, можлива передача відео, текстових повідомлень, факсів та ін), необхідний механізм обміну інформацією про те, які сервіси може використовувати. Для цієї мети використовується протокол SDP (Session Description Protocol) - протокол опису сесії. Даний протокол дозволяє визначити які звукові (відео та інші) кодеки і інші можливості може використовувати віддалена сторона.

Власне сама передача голосу здійснюється завдяки використанню протоколу RTP (Real-time Transport Protocol, протокол транспортування в реальному часі). Сам протокол SIP безпосередньої участі в передачі голосових, відео та інших даних не приймає, він відповідає тільки за встановлення зв'язку (по протоколах SDP, RTP і ін), тому під SIP-телефонією розуміється не передача голосу по протоколу SIP, а передача голосу з використанням протоколу SIP. Використання протоколу SIP надає нові можливості встановлення з'єднань (а також можливість безпроблемного розширення даних можливостей), а не безпосередньої передачі голосового та інших видів трафіку.

Формат адрес використовуваних протоколом SIP нагадує формат E-Mail-адреси: ім'я @ ідентіфікатор_хоста. На початку адреси сатвиться приставка "sip:" (приклад: sip: [email protected]). В якості ідентифікатора хоста може служити його IP-адресу, домен або ім'я хоста (IP-адреса визначається з використанням DNS, так що в результаті все одно виходить звернення за адресою sip: ім'я @ IP-адресу).

1.6. Повідомлення SIP

Повідомлення SIP-протоколу мають наступну структуру:

  • Стартовий рядок  (start-line);
  • Заголовки повідомлення (*message-header);
  • Пустий рядок (CRLF);
  • Тіло повідомлення.

Стартовий рядок розрізняється залежно від того чи є повідомлення запитом або відповіддю (у разі запиту - в ній повідомляється тип запиту, адресат і номер версії протоколу, а в разі відповіді - номер версії протоколу, статус і текстову__розшифровку_статусу. 
 У заголовках містяться відомості про джерело адресата, шляху проходження повідомлення і т.д. Цих заголовків може бути досить багато і ця кількість може мінятися на шляху проходження пакетів.

У протоколі SIP версії 2.0 існує 6 типів запитів (тип запиту задається в стартовою рядку):

INVITE — викликає адресата для встановлення зв'язку. За допомогою цього повідомлення адресату передаються види підтримуваних сервісів (які можуть бути використані ініціатором сеансу), а також види сервісів, які бажає передавати ініціатор зв'язку.

ACK —повідомлення підтверджує згоду адресата встановити з'єднання. У цьому повідомленні можуть бути передані остаточні параметри сеансу зв'язку (остаточно вибираються види сервісів і їх параметри які будуть використані)

Cancel  —  відміна раніше переданих запитів (використовується у випадку якщо необхідності в них більше немає.

BYE — запит завершення з'єднання

Register — даним запитом користувач ідентифікує своє поточне місце розташування

ОPTIONS — запит інформації про функціональні  можливості терміналу (застосовується у разі, якщо ці дані потрібно отримати до встановлення з'єднання, тобто до фактичного обміну даною інформацією  за допомогою запитів INVITE і ACK).

На кожен запит, відправникові прямує відповідь, що містить код результату виконання запиту. Формат цих відповідей успадкований від протоколу HTTP.  Відповіді кодуються 3-хзначним числом, перша цифра якого вказує на клас відповідей, а інші дві - ідентифікують конкретну відповідь в кожному класі.  Пристрій може не знати, що означає код відповіді, але повинно обов'язково знати клас відповіді. Всього існує 6 класів відповідей:

1?? —  інформаційна відповідь

2?? —  успішне закінчення запиту

3?? — інформація про зміни місця розташування абонента, що викликається

4?? — інформація про помилку

5?? — інформація про помилку сервера

6?? — інформація про неможливість виклику абонента (користувача з такою адресою не існує, або користувач відмовляється прийняти виклик)

 

Інформаційні  відповіді повідомляють про стадію виконання запиту, вони не є завершенням  запиту. Інші ж класи відповідей завершують виконання запиту[3].

1.7.  Приклад встановлення з'єднання

Розглянемо  приклад процесу встановлення з'єднання  з використанням SIP-протоколу (приклад  взятий з RFC 3261). Даний приклад відображає роботу базових функцій телефонії  і відповідно не зачіпає такі можливості як відеозв'язок передача текстових  повідомлень і т.д. Загальний принцип  роботи протоколу залишається незмінним.

 

Рис 1.3. Користувач Alice (sip:[email protected])  викликаєкористувача Bob (sip:[email protected])

Користувач Alice (sip: [email protected]) викликає користувача Bob (sip: [email protected]).

1. Користувач Alice посилає повідомлення INVITE проксі-серверу за замовчуванням (atlanta.com) Якби користувачеві Alice був відомий IP-адресу користувача Bob і він міг до нього звернутися безпосередньо, то запит INVITE в цьому випадку міг бути посланий безпосередньо користувачеві.

2. Проксі-сервер посилає запит INVITE серверу абонента, що викликається (biloxi.com).

3. Далі проксі-сервер користувача Bob при необхідності визначає його поточний IP-адресу і посилає йому повідомлення INVITE,  у користувача починає дзвонити телефон, про що повідомляється у відповіді 180

4. Якщо користувач, що викликається  відповів на дзвінок, то на  запит INVITE висилається відповідь  200 (OK).

5. Користувач відправляє повідомлення ACK, що повідомляє  про те, що він отримав відповідь на свій запит INVITE, їм задаються остаточні параметри з'єднання. На цьому етапі все готово до встановлення з'єднання по протоколу RTP__(Real-time__Transport__Protocol). 
6. Встановлюється RTP-з'єднання з наперед узгодженими параметрами. 
7. Для завершення з'єднання, користувач (кладе слухавку) надсилається запит BYE, на яке висилається відповідь 200 (OK)

Поки повідомлення встановлення з'єднання (INVITE) ходять між проксі-серверами і невідомо чи доступний користувач, що викликається, у відповідь на INVITE посилається відповідь 100 (Trying), що повідомляє про спробу__встановлення__з'єднання. 
 Так як проксі-сервер може встановлювати власні з'єднання, його використання дозволяє без проблем долати NAT. Також можлива побудова декількох проксі-серверів в один ланцюжок, що дозволяє долати відразу декілька NAT.

 

1.8.Мережа на базі протоколу SIP

SIP представляє із себе тексто - орієнтований  протокол, який являється частиною  глобальної архітектури мультимедії  , розробленої комітетом Internet Engineering Task Force (IETF). Ця архітектура також  включає в себе протокол резервування  ресурсів , транспортний протокол  реального часу,протокол передачі  потоків в реальному часі, протокол  опису параметрів зв'язку, протокол  сповіщення про зв'язок. Але функції  протоколу SIP не залежать  від  цих параметрів.

Підхід  до побудови SIP мережі набагато простіший чим Н.323, але менше підходить для організації взаємодії з телефонними мережами. В основному це пов'язано з тим що протокол сигналізації SIP, базується на протоколі HTTP. Тому протокол SIP більше підходить для ІР - телефонії.

Тим паче протокол SIP підтримує послуги  інтелектуальної мережі , такі як перетворення імен, пере адресація і маршрутизація. Також важливим в протоколі SIP є  те що він підтримує мобільність  користувача, тобто вміння получати доступ  до заказаних послуг  будь де з любого терміналу, а також  вміння мережі  ідентифікувати і аутентифікувати  користувача при його переміщені з одного місця в друге.  Перейдемо до архітектури мережі  яка базується на протоколі SIP (Рисунок 5 ).

Рис 1.4. Приклад мережі на базі протоколу SIP

Мережа SIP містить основні елементи трьох видів: агенти користувача, проксі-сервери і сервери переадресації. Агенти користувача (User Agent або SIP client) є додатками термінального обладнання і включають в себе дві складові: агент користувача - клієнт (User Agent Client - UAC) і агент користувача - сервер (User Agent Server - UAS), інакше відомі як клієнт і сервер відповідно. Клієнт UAC ініціює SIP-запити,. Сервер UAS приймає запити і повертає відповіді.

Крім  того, існує два типи мережевих  серверів SIP: проксі-сервери (сервери-посередники) і сервери переадресації. Сервери SIP можуть працювати як в режимі зі збереженням станів поточних з'єднань (statefull), так і в режимі без збереження станів поточних з'єднань (stateless). Сервер SIP, що функціонує в режимі stateless, може обслужити яку завгодно велику кількість  користувачів, на відміну від Н.323, який може одночасно працювати з  обмеженою кількістю користувачів.

Проксі-сервер (Proxy-server) діє «від імені інших клієнтів» і містить функції клієнта (UAC) і сервера (UAS). Цей сервер інтерпретує і може перезаписувати заголовки запитів перед відправленням їх до інших серверів (Рисунок 6). Відповідні повідомлення слідують по тому ж шляху назад до проксі-сервера, а не до клієнта.

SoftPhone. Система голосових дзвінків