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

Автор работы: Пользователь скрыл имя, 25 Июня 2013 в 22:01, дипломная работа

Краткое описание

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

Содержание

ВСТУП 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

Вложенные файлы: 1 файл

1True1.docx

— 1.12 Мб (Скачать файл)

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

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

 

 

 

 

 

 

 

 

 

 

Рис.2.2.Cхема узагальненого алгоритму роботи пристрою

 

 

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

Для розробки прикладної програми SoftPhone було обрано мову програмування Delphi.   Середовище розробки було використане Delphi 7 і додатковий компонент  SIP Delphi Component.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

Розроблений прикладний програмний продукт складається  із  4 вікон ( form ):

1) MainForm - форма головного вікна

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

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

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

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

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

До  складу цієї форми входять такі компоненти і функції:

  • StatusPopupMenu
  • StatusImages
  • Timer1
  • ActionList1
  • FormCloseQuery
  • FormCreate
  • FormShow

StatusPopupMenu - це компонент який дозволяє створити  меню , в якому можна буде вибирати статус підключення "Online " або "Offline".

StatusImages - компонент в якому зберігаються картинки маленького розмірі для статус меню.

Timer1 - компонент відповідає за обновлення з'єднання кожних 800млс.

ActionList1 - компонент відповідає за функції які виконують кнопки.

FormCloseQuery - функція яка відповідає за закриття форми, а також за вивільнення ресурсів і відключення від сервера.

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

FormShow - функція відповідає за відображення компонентів при запуску програми.

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

Ця форма  є макетом головної форми, на ній  розташовані головні компоненти для роботи , кнопки , поля і т.д.

На цій  формі є такі компоненти:

  • LineMemo
  • CallBtn
  • HangUpBtn
  • PhoneEdit
  • RecordBtn
  • Exit
  • Clear PhoneEdit
  • Info
  • SettingsAcc
  • SettingsAudi
  • SpeedButton1 - SpeedButton10

 

LineMemo -  компонент відповідає за відображення інформації з'єднання , розмови і т.д.

CallBtn - компонент відповідає за дзвінок.

HangUpBtn - компонент відповідає за розрив дзвінка.

PhoneEdit - компонент відповідає за відображення набраного номера.

RecordBtn - компонент відповідає за запис розмови , а також за її збереження.

Exit - компонент відповідає за вихід з програми.

Clear PhoneEdit - компонент відповідає за очищення набраного номера.

Info - компонент відповідає за відображення інформації про виробника і програмний продукт.

SettingsAcc - компонент відповідає за відображення форми із налаштуваннями користувачів.

SettingsAudi- компонент відповідає за відображення форми із налаштуваннями  звуку.

SpeedButton1 - SpeedButton12 - це компонент який є циферблатом , він відповідає за набір цифр і символів.

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

Ця форма  відповідає за налаштування звукових пристроїв, вона автоматично шукає  всі  звукові пристрої  і дає  змогу вибрати потрібний.

На цій  формі є такі компоненти:

  • Label2
  • Image1 - Image3
  • waveInDevice
  • waveOutDevice
  • waveRingDevice

Label2 - компонент відповідає за відображення тексту.

Image1 - Image3 - компонент відповідає за відображення  зображень.

waveInDevice - компонент відповідає за відображення всіх пристроїв які приймають звік.

waveOutDevice - компонент відповідає за відображення всіх пристроїв які відтворюють звук.

waveRingDevice - компонент відповідає за відображення стандартних пристроїв звуку.

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

Ця  форма відповідає за налаштування інформації про користувача.

На  цій формі є такі компоненти:

  • AccountList
  • RegisterAction
  • RemoveAction
  • EditAction
  • AddAction

AccountList - компонент відповідає за відображення інформації про користувача.

RegisterAction - компонент який відображає форму для додавання нового користувача.

RemoveAction - компонент який видаляє вибраного користувача.

EditAction - компонент за допомогою якого можна змінити інформацію про користувача.

AddAction - компонент який відображає форму для додавання нового користувача.

 

 

 

 

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

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

На  формі розміщено  компоненти для зручної роботи з програмним продуктом. З верху є меню за допомогою якого ми може перейти  в форми налагодження звуку, користувачів, а також  дізнатись інформацію про виробника. Нижче розміщене велике поле для відображення  інформації про стан дзвінка. З права розміщено циферблат , за допомогою якого ми вводимо номер для дзвінка,  введений номер відображається з права. Вище над полем де відображається введений номер , розміщено  дві кнопки , які відповідають за приймання або здійснення дзвінка, а також для розриву дзвінка або його відхилення. Під полем де відображається набраний номер розташована кнопка "Записати", вона  служить для збереження голосової розмови в *.wav формату.   Нижче розташована кнопка "Вихід ", вона призначена для виходу із програми,а поряд з нею також розташована кнопка "Очистити" яка призначена для очистки поля де відображається введений номер. Самого низу відображається статус підключення програми до сервера.  На рисунку 3.1 зображена головна форма програми.

 

Рис.3.1 Головне в  SoftPhone

3.2.2 Вікно "Account Settings"

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

  • З'єднати
  • Додати
  • Змінити
  • Видалити

Кнопки "З'єднати" відповідає за встановлення з'єднання із сервером, вибираємо потрібного нам користувача і нажимаємо на дану кнопку. Кнопка "Додати" відповідає за створення нового користувача. При  натисканні на цю кнопку появляється додаткова форма, в котрій є такі поля:

  • SIP server
  • User
  • Password
  • Proxy
  • use Stun
  • SIP server -  назва сервера.
  • User - ім'я користувача
  • Password - пароль до облікового запису користувача
  • Proxy - Проксі сервер (якщо нам потрібно працювати через проксі сервер)
  • use Stun - мережний протокол, який дозволяє користувачу, що знаходиться за межами серверу трансляції адрес, визначити свою зовнішню IP-адресу. (якщо нам потрібно то ставимо галочку).

На  зображені  3.2 відображена форма для створення користувача.

Рис.3.2 Форма для створення користувача

 

Кнопка "Змінити" аналогічна до кнопки "Додати",  при натисканні на кнопку відображається вікно аналогічне до рисунку 3.2.2. , але  в ньому зразу відображається інформація про користувачів які уже були додані , і тоді можна робити зміни в їх обліковому записі.

Кнопка "Видалити" відповідає за видалення  користувача. На рисунку 3.3 зображена форма Account Settings

Рис.3.3 Вікно Account Settings

3.2.3 Вікно "Audio Settings"

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

На  рисунку 3.4 зображена форма Audio Settings

Рис.3.4 Вікно Audio Settings

3.2.4 Вікно "About"

Вікно відображає інформацію про версію програми, а також про розробника!

На  рисунку 3.5 зображена форма About

Рис.3.5 Вікно About

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

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

Рис.3.6 Cхема функції FormShow().

 

Таймер відповідає за обновлення з'єднання, обновляється з інтервалом 800 мс.

Функція називається так:

procedure TMainForm.Timer1Timer(Sender: TObject);

На  рисунку 3.7 показано властивості таймера.

Рис.3.7 Властивості таймера.

Для здійснення і прийому дзвінка потрібно використати функцію CallActionExecute.

Повна назва  функції:

procedure TMainForm.CallActionExecute(Sender: TObject);

При її натиску  спочатку провіряється чи користувач встановив з'єднання  і є в режимі з'єднання функцією Assigned(Account), після цього провіряється чи це є дзвінок вхідний чи вихідний Assigned(FLines[FLineIndex]) і залежно від результату, ми здійснюємо дзвінок або його приймаємо. Нижче приведена блок схема роботи рис 3.8.

Рис.3.8 Cхема роботи функції здійснення і приймання дзвінка.

 

Для розриву або відхилення дзвінка  потрібно використати функцію HangUpActionExecute.

Повна назва  функції:

TMainForm.HangUpActionExecute(Sender: TObject);

Дана  функція працює лише тоді коли вже  здійснено дзвінок  або коли є  вхідний дзвінок, якщо одна з цих  умов є істиною , тоді  кнопка дзвінка  робиться не активною , що б користувач  випадково не натиснув її. Функція      SipClient.EndCall  відповідає за розрив дзвінка, а HangUpBtn.Enabled відповідає за те що би зробити кнопку дзвінка не активною. Нижче приведена блок схема роботи рис 3.9.

Рис.3.9 Cхема роботи функції розриву і відхилення дзвінка.

Функція StatusBar1DrawPanel відображає статус з'єднання  програми із сервером.

Повна назва  функції:

procedure TMainForm.StatusBar1DrawPanel(StatusBar: TStatusBar;

Дана  функція провіряє підключення до сервера, якщо FConnected дорівнює FALSE тоді в статусі відображається статус "Offline",  якщо ж все таки є  підключення провіряється користувач Assigned(Account), якщо все добре тоді в  статусі появляється ім'я користувача  і сервер до якого він підключений. Нижче приведена блок схема роботи рис 3.10.

Рис.3.10 Cхема роботи функції відображення статусу.

Функція RecordActionExecute  записує і зберігає розмову між користувачами.

Повна назва  функції:

procedure TMainForm.RecordActionExecute(Sender: TObject);

Дана  функція відповідає за збереження звукової розмови. Спочатку провіряється чи функція  запису звуку вже не використовується Assigned(FRecorder), тоді компонент створює запис FRecorder := SipClient.CreateRecorder, тоді іде провірка на які лінії зв'язку проходить розмова, в наші версії програми вона тільки 1 ,  після цього іде запис ,  а назва кнопки змінюється на "Зберегти", коли  ще раз нажати на кнопку, створюється діалогове вікно  Dlg := TSaveDialog.Create(nil), після його створення  перевіряється чи дійсно створилось вікно , якщо так , ми вибираємо місце куди зберегти файл із звуковим записом , після збереження очищаються ресурси. Нижче приведена блок схема роботи рис 3.11.

 

 

Рис.3.11 Cхема роботи функції  запису і збереження звукової розмови.

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

Після створення програми потрібно провести її тестування.

Помилки які можуть виникати під час роботи системи:

- Відсутність підключення до мережі  Інтернет.

Информация о работе SoftPhone. Система голосових дзвінків