Введення
Комп'ютерні мережі зараз являють собою складні комплекси з безліччю підтримуваних протоколів передачі даних і управелнія, які інтенсивно удосконалюються. Комп'ютерні мережі надають користувачам сервіси, реалізовані у вигляді мережевих додатків. Одним з найбільш поширених класів мережевих додатків є клієнт-серверні додатки [1], які реалізуються у вигляді клієнтської частини, що реалізує запити до серверів, і серверної частини, що реагує на ці запити (рис. 1.).
Рис. 1. Клієнт-серверний додаток
У даній роботі зроблена спроба створення мережевого програми, що забезпечує можливість проведення аудіоконференцій. В якості протоколу обміну між клієнтом і сервером запропонований протокол, заснований на командах серверної частини посилаються клієнтської. Система підтримує одночасну роботу сервера з декількома клієнтами. Команди серверної частини можуть бути наступного виду:
· Команда про передачу даних авторизації на сервер.
· Команда про відключення клієнта.
· Команда про підключення вихідного аудиопотока.
· Команда про підключення вхідного аудиопотока.
· Команда про передачу аудіоданих.
· Команда поновлення даних про конференції.
1. Дослідницька частина
1.1 Мета розробки і основні розв'язувані задачі
програмний алгоритм додаток серверний
Головною метою даної роботи є створення серверної і клієнтської частин системи проведення аудиоконференций з можливістю роботи в локальної або глобальної мережі.
Серверна частина повинна забезпечувати ефективну роботу з клієнтами в умовах одночасного підключення декількох користувачів, а так само володіти дружнім інтерфейсом і відповідати таким основним вимогам:
· Авторизація користувачів в системі.
· Відправка коректних команд клієнту.
· Отримання аудіоданих від клієнтів.
· Микширование аудіоданих.
· Передача мікшувати аудіоданих клієнтам.
· Передача клієнтам інформації про учасників конференції.
· Збереження в лог файл історії подій.
· Відстеження помилок з'єднання і передачі (обробка виняткових ситуацій).
Клієнтська частина повинна забезпечувати ефективне обслуговування серверних запитів і коректно виконувати посилають їй команди. До клієнтської частини пред'являються наступні вимоги:
· Коректне реагування на команди сервера.
· Авторизація на сервері.
· Запис аудіоданих з мікрофону.
· Передача аудіоданих на сервер.
· Відтворення отриманих з сервера аудіоданих.
· Відображення інформації про учасників конференції.
· Збереження в лог файл історії подій.
· Відстеження помилок з'єднання і передачі (обробка виняткових ситуацій).
Завдання не є новою, тому при завданні функціональності і розробці дизайну даної системи необхідно враховувати досвід, напрацьований в даній області, і орієнтуватися на вже існуючі успішні проекти.
.2 Сучасні засоби вирішення поставленого завдання
В даний час існує деяка кількість додатків, що надають можливість проведення аудіоконференцій. Розглянемо деякі з них.
Asterisk
Asterisk - це проект з відкритим вихідним кодом компанії Digium.
Даний проект:
· володіє всіма можливостями класичної АТС
· підтримує безліч VoIP протоколів
· надає функції
§ голосової пошти
§ конференцій
§ інтерактивного голосового меню (IVR)
§ центру обробки викликів (постановка дзвінків у чергу і розподіл їх за агентам використовуючи різні алгоритми)
· не вимагає ніякого спеціального обладнання практично для всіх пристроїв Voice over IP
Недоліки:
· Додаток працює на операційних системах GNU/Linux, FreeBSD (Мал. 1.2.1.1) і Solaris
· Складність в адмініструванні. Адміністратору системи потрібно володіти знаннями в Asterisk і хорошими навичками адміністрування Linux, знати технології і продукти IP телефонії.