Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аналог скайпа...прошу совета.. 
:(
    Опции темы
tonchitos
  Дата 11.4.2007, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 24.2.2007

Репутация: нет
Всего: 40



Я буду ваять курсовик. Хочу сделать куцый аналог скайпа. То есть перехватывать голосовые сообщения, шифровать их и передавать, а там, соответственно получать и тд. Ну и еще чего нить к нему приделаю...но это уже в процессе..

Но я в сетевом программировании нолик. smile  
Посоветуйте, что мне нужно освоить для решения этой задачи..Программирую на Visual C++(знаю апи и мфс). Время на курсовик у меня - два месяца(я успею разобраться, да?  smile ).

Жду любых советов подсказок и мыслей. 
Заранее всем спасибки..

Добавлено через 3 минуты и 27 секунд
И ссылочки кидаааайте, да побоооольше!  


--------------------
– Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил.
PM MAIL   Вверх
azesmcar
Дата 11.4.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



Скайп использует технологию VoIP (Voice Over IP). Короче говоря это не самое простое что можно придумать для курсовой. Для начала ты должен выбрать для себя какой нибудь протокол, хотя в принципе если тебе нужно чтоб пользователи могли общатся только через твою программу это не обьязательно. Можешь придумать свой. Но если подойти к делу серьезно, то нужен протокол.
На данный момент SIP наилучший вариант. Хотя с протоколом H323 микрософт облегчит тебе путь (смотри TAPI - Telephony Application Programming Interface ). Кроме этого нучно изучить механизм передачи голоса по интернет, т.е. алгоритм преобразования Analog-Digital. Алгоритм смотри здесь

http://en.wikipedia.org/wiki/Nyquist%E2%80...ampling_theorem

Также почитай описание технологии VoIP
Цитата

Технология передачи голосовой информации с использованием протокола IP имеет за рубежом устоявшееся название Voice Over IP (VOIP). Одним из приложений этой технологии является Интернет-телефония (Internet Telephony). Интернет-телефония - технология передачи голосовой информацией в режиме реального времени через Интернет или любую другую сеть на основе протокола IP (Internet Protocol). Поэтому Интернет-телефонию часто называют IP-телефонией (IP telephony).

Передача голоса по Интернет происходит в несколько этапов. Первый этап - это оцифровка голоса. Затем оцифрованные данные анализируются и обрабатываются с целью уменьшения физического объема данных, передаваемых получателю. На этом этапе происходит подавление ненужных пауз и фонового шума, а также компрессирование. На следующем этапе полученная последовательность данных разбивается на пакеты и к ней добавляется протокольная информация - адрес получателя, порядковый номер пакета на случай, если они будут доставлены не последовательно, и дополнительные данные для коррекции ошибок.

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

Извлечение переданной голосовой информации из полученных пакетов также происходит в несколько этапов. Когда голосовые пакеты приходят на терминал получателя, то сначала проверяется их порядковая последовательность. Поскольку IP-сети не гарантируют время доставки, то пакеты со старшими порядковыми номерами могут прийти раньше, более того, интервал времени получения также может колебаться. Для восстановления исходной последовательности и синхронизации происходит временное накопление пакетов. Однако некоторые пакеты могут быть вообще потеряны при доставке, либо задержка их доставки превышает допустимый разброс. В обычных условиях приемный терминал запрашивает повторную передачу ошибочных либо потерянных данных. Передача голоса критична ко времени доставки, поэтому включается алгоритм аппроксимации, позволяющий на основе полученных пакетов приблизительно восстановить потерянные, либо эти потери просто игнорируются, а пропуски заполняются данными случайным образом. Отсюда возникают небольшие искажения голоса при передаче. Кроме того, так как IP-пакеты проходят через несколько маршрутизаторов, то во время разговора возникают небольшие (0,1 - 0,4 секунды) задержки.

Для передачи голосовой информации Трансинфосеть использует высококачественные каналы с большой полосой пропускания, и практически полным отсутствием потерь пакетов, что позволяет достичь уровня качества, сравнимого с качеством традиционной телефонии.



Это сообщение отредактировал(а) azesmcar - 11.4.2007, 08:51
PM   Вверх
tonchitos
Дата 11.4.2007, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 24.2.2007

Репутация: нет
Всего: 40



Спасибо....а..я за два месяца успею? Как думаете?
И еще, люди, ссылочки то на русском кидайте...а то на инглише у мя скорость чтения ниже в 10 раз, неудобно оч.


--------------------
– Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил.
PM MAIL   Вверх
Бонифаций
Дата 11.4.2007, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



если писать с нуля - два месяца слишком мало

В качестве отправной точки посмотрите исходники twinkle (его можно собрать  совсем без GUI), и проект ccrtp



--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
tonchitos
Дата 11.4.2007, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 24.2.2007

Репутация: нет
Всего: 40



Цитата

Скайп использует технологию VoIP (Voice Over IP).

Да мне не важно, какую технологию использует скайп, мне нужно написать прогу, которая перехватывает звук у микрофона, шифрует(как любой файл), передает, принимает, расшифровывает,ну тож самое можно делать и с текстом.
Цитата

Короче говоря это не самое простое что можно придумать для курсовой.

Поэтому если есть простая технология, то советуйте. 


--------------------
– Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил.
PM MAIL   Вверх
azesmcar
Дата 11.4.2007, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



Цитата

И еще, люди, ссылочки то на русском кидайте...


Что-то не припоминаю чтобы RFC на русском писали smile если хочешь программировать придеться учить английский, потому что некоторые вещи на русский никто не перевел и вряд ли переведет.

Цитата

Да мне не важно, какую технологию использует скайп

не сходится
Цитата

Аналог скайпа...


Аналог скайпа означает что ты сможешь звонить не только на компьютер но и на обычный домашний телефон..т.е. IP Телефония.
Если нет, тогда тебе просто нужен Voice Chat. Правда это не особо облегчит твое дело, все равно АЦП звука придется писать.

Цитата

Поэтому если есть простая технология, то советуйте.  


Очень простая технология...записываешь звук, преобразовываешь и посылаешь серверу. С нуля за 2 месяца не напишешь, особенно если не знаком с VoIP. Лучше посмотри на уже готовые решения
Цитата

В качестве отправной точки посмотрите исходники twinkle (его можно собрать  совсем без GUI), и проект ccrtp

попробуй реализовать используя TAPI (в этом случае можешь в качестве клиента использовать Phone Dailer), или пересмотри тему курсовика.

Это сообщение отредактировал(а) azesmcar - 11.4.2007, 14:44
PM   Вверх
witex
Дата 12.4.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 16.10.2006
Где: Эстония

Репутация: 1
Всего: 4



я думаю полный аналог скайпа не нужен, потому что он то не сразу VOIP использовал! и на простые телефоны только через пару лет звонить начал! вообьще лудще простой аналог сетевой звонилки сдеть вот и всё! идин к одному! 
Естественно в асинхронном режиме!
потому что так  синхронном будет смещение звука и искожение!

преоброзовывать советую в МП3 формат и  посылатть однин паккет с его контрольной суммой МД5! будет проще. и надёжно! а шифрование зачем тебе я не понимаю!

Цитата

Очень простая технология...записываешь звук, преобразовываешь и посылаешь серверу.


в скайпе звук не посылается серверу! он послыется сразу абоненту! сервер только следит за тем кто в онлайне! сервером только становиться тот кто звонит! а ваабще если посмотреть , на коференцию в скайпе то там даже если организатор в офлайн удёт она будет жить! так что Скайп сервер следит только за тем, если звонок или нету! и ни чего более! остальное всё передаётся P2P-
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. 
PM MAIL   Вверх
AndreyK
Дата 13.4.2007, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2007

Репутация: нет
Всего: нет



Я бы воспользовался обычным API

открываем:
waveInOpen 
waveInStart

записываем в буфер:
waveInPrepareHeader
waveInAddBuffer
waveInUnprepareHeader

по мере записи передаём по сети обычным send

принимаем в буфер recv
открываем:
waveOutOpen
проигрываем:
waveOutWrite

где-то есть готовые примеры ... 

PM MAIL   Вверх
AndreyK
Дата 16.4.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2007

Репутация: нет
Всего: нет



Есть альтернативный вариант:
Берём какую нибудь программу, которая всё это может (например до XP был  NetMeeting , а теперь ,наверное, какая ни будь другая утилита винды может) и используем его для передачи звука по сети, через встроенный в него интерфейс.

Надо только в инструкциях разобраться...


Это сообщение отредактировал(а) AndreyK - 16.4.2007, 15:28
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0949 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.