Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VoIPDemo

Учебный проект по технологии VoIP (Voice over IP).

Что реализовано

Решение состоит из четырёх проектов:

  • VoIPClient — консольное приложение, которое захватывает звук с микрофона, упаковывает в RTP-пакеты (RFC 3550) и отправляет по UDP на заданный адрес, а также принимает входящие RTP-пакеты и воспроизводит их через динамики. Использует библиотеку NAudio для работы с аудио.
  • RtpLib — библиотека для работы с RTP: структура заголовка (12 байт) и генератор последовательных RTP-пакетов с автоматическим увеличением Sequence Number и Timestamp.
  • SipParser — парсер SIP-сообщений и SDP-тел (RFC 3261, RFC 8866). Разбирает запросы (REGISTER, INVITE и т.д.) и ответы (200 OK, 486 Busy Here) с опциональным SDP-блоком.
  • UnitTests — NUnit-тесты для RtpLib и SipParser.

Как запустить

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

Аргументы командной строки

VoIPClient [прослушиваемый_порт] [удалённый_порт]
  • прослушиваемый_порт — порт, на котором клиент слушает входящие RTP-пакеты (по умолчанию 5001)
  • удалённый_порт — порт, на который клиент отправляет RTP-пакеты (по умолчанию 5000)
  • Удалённый IP-адрес всегда 127.0.0.1 (локальный).

Пример запуска (два клиента на одном ПК)

Терминал 1:

VoIPClient 5000 5001

Слушает порт 5000, отправляет на порт 5001.

Терминал 2:

VoIPClient 5001 5000

Слушает порт 5001, отправляет на порт 5000.

После запуска клиент начинает запись с микрофона и воспроизведение поступающего аудио. Для остановки нажмите Enter.

Важно: Клиент использует некодированный PCM-звук (8 кГц, 16 бит, моно). Для работы по сети между разными машинами потребуется изменить IP-адрес и убедиться, что UDP-порты открыты в файерволе. Сигнализация (SIP) в клиенте не реализована — это прямое RTP-соединение.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages