Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

doe300/OHMComm

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OHMComm

This project started as an IT-Project at the faculty for Computer Science of the technical university Georg Simon Ohm Nürnberg in summer semester 2015 and winter semester 2015/2016 to create a platform-independent voice-over-IP peer-to-peer communication program in C++.

Build Status Build Status GitHub license Release

This program is currently developed under linux (Fedora 23) and Windows (7/8) and tested under Mac OS X.

OHMComm is based upon RtAudio and therefore supports all audio-libraries supported by RtAudio (see RtAudio API-Notes). The audio-data are (optionally but highly recommended) encoded with the included opus-codec. As of version 0.8, RtAudio as well as Opus are optional and PortAudio is also supported as audio-library. By additionally supporting SIP as well as the audio-codecs Opus, G.711 A-law and mu-law, OHMComm can be used to call or get called by any other SIP-based VoIP application.

The OHMComm framework is highly extensible. Any audio-library or codec can be added by writing a wrapper-class and registering it with the correct factory-class.

Build it

Under Linux/Mac OS

You will need a compiler with full C++11 support and cmake in version 2.6 or higher. Additionally you will require the development-header for the supported audio-library of your choice, for ALSA this would be libasound-dev on Debian-based systems and alsa-lib-devel on Fedora.

$ cd <project-directory>
$ cmake -G "Unix Makefiles" ./CMakeLists.txt
$ make OHMComm				# To build the library
$ make OHMCommStandalone	# To build the executable

This will build the library/executable into <project-directory>/build/ by default.

Run it

Under Linux/Mac OS/Windows

$ cd <executable-directory>	
$ ./OHMCommStandalone		# To run in interactive mode
$ ./OHMCommStandalone	-h	# Prints all command-line arguments
$ ./OHMCommStandalone path/to/config-file	# Runs in file-configuration mode

Supported libraries

Audio libraries

  • RtAudio: A platform-independent API for accessing audio-drivers written in C++
  • PortAudio: Another platform-independent audio API for accessing native libraries, written in C

Codecs

  • Opus: An highly effective audio-codec, primarily used for real-time applications (e.g. VoIP)
  • G.711: The two audio-codecs (A-law and mu-law) used for digital telephony
  • iLBC: Another low-bandwidth VoIP codec, defined in RFC 3951, now a part of WebRTC
  • GSM: GSM 06.10 Mobile communication standard
  • AMR-NB: Adaptive Multi Rate Narrowband via the OpenCORE-AMR library

Features

  • Fully standard-conform communication based on RTP including full RTCP support
  • Support for direct calls to and from any VoIP application featuring SIP
  • Support for SIP-based registration with a VoIP-server
  • Support for DTX to further decrease required bandwidth
  • Automatic audio-device detection, resampling, etc.

Addons

  • A work-in-process graphical interface based on Qt5 is available here

About

Platform-independent voice-over-IP peer-to-peer communication program

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.