Home

Awesome

baresip README

Baresip Logo

Baresip is a portable and modular SIP User-Agent with audio and video support.
Copyright (c) 2010 - 2024 Alfred E. Heggestad and Contributors
Distributed under BSD license

Build Lint OpenSSL and LibreSSL Valgrind

Features:

Building

baresip is using CMake, and the following packages must be installed before building:

See Wiki: Install Stable Release or Wiki: Install GIT Version for a full guide.

Build with debug enabled

$ cmake -B build
$ cmake --build build -j
$ cmake --install build

Build with release

$ cmake -B build -DCMAKE_BUILD_TYPE=Release 
$ cmake --build build -j

Build with selected modules

$ cmake -B build -DMODULES="menu;account;g711"
$ cmake --build build -j

Build with custom app modules

$ cmake -B build -DAPP_MODULES_DIR=../baresip-apps/modules -DAPP_MODULES="auloop;vidloop"
$ cmake --build build -j

Build with clang compiler

$ cmake -B build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
$ cmake --build build -j

Build static

$ cmake -B build -DSTATIC=ON
$ cmake --build build -j

Modules will be built if external dependencies are installed. After building you can start baresip like this:

$ build/baresip

The config files in $HOME/.baresip are automatically generated the first time you run baresip.

Build documentation

The API documentation can be build using doxygen.

$ doxygen mk/Doxyfile

By default the documentation is written to ../baresip-dox, if you want to change the destination directory you can change the OUTPUT_DIRECTORY in mk/Doxyfile.

Examples

License

The baresip project is using the 3-clause BSD license.

Contributing

Patches can be sent via Github Pull-Requests or to the Baresip mailing-list.

Design goals:

Modular Plugin Architecture:

aac           Advanced Audio Coding (AAC) audio codec
account       Account loader
alsa          ALSA audio driver
amr           Adaptive Multi-Rate (AMR) audio codec
aptx          Audio Processing Technology codec (aptX)
aubridge      Audio bridge module
auconv        Audio sample format converter
audiounit     AudioUnit audio driver for MacOSX/iOS
aufile        Audio module for using a WAV-file as audio input
auresamp      Audio resampler
ausine        Audio sine wave input module
av1           AV1 video codec
avcapture     Video source using iOS AVFoundation video capture
avcodec       Video codec using FFmpeg/libav libavcodec
avfilter      Video filter using FFmpeg libavfilter
avformat      Video source using FFmpeg/libav libavformat
codec2        Codec2 low bit rate speech codec
cons          UDP/TCP console UI driver
contact       Contacts module
coreaudio     Apple macOS Coreaudio driver
ctrl_dbus     Control interface using DBUS
ctrl_tcp      TCP control interface using JSON payload
debug_cmd     Debug commands
directfb      DirectFB video display module
dshow         Windows DirectShow video source
dtls_srtp     DTLS-SRTP end-to-end encryption
ebuacip       EBU ACIP (Audio Contribution over IP) Profile
echo          Echo server module
evdev         Linux input driver
fakevideo     Fake video input/output driver
g711          G.711 audio codec
g722          G.722 audio codec
g7221         G.722.1 audio codec
g726          G.726 audio codec
gst           Gstreamer audio source
gtk           GTK+ 3 menu-based UI
gzrtp         ZRTP module using GNU ZRTP C++ library
httpd         HTTP webserver UI-module
httpreq       HTTP request module
ice           ICE protocol for NAT Traversal
jack          JACK Audio Connection Kit audio-driver
l16           L16 audio codec
menu          Interactive menu
mixausrc      Mixes another audio source into audio stream
mixminus      Mixes N-1 audio streams for conferencing
mpa           MPA Speech and Audio Codec
mqtt          MQTT (Message Queue Telemetry Transport) module
mwi           Message Waiting Indication
natpmp        NAT Port Mapping Protocol (NAT-PMP) module
netroam       Detects and applies changes of the local network addresses
opensles      OpenSLES audio driver
opus          OPUS Interactive audio codec
opus_multistream    OPUS multistream audio codec
pcp           Port Control Protocol (PCP) module
plc           Packet Loss Concealment (PLC) using spandsp
portaudio     Portaudio driver
pulse         Pulseaudio driver
presence      Presence module
rtcpsummary   RTCP summary module
sdl           Simple DirectMedia Layer 2.0 (SDL) video output driver
selfview      Video selfview module
serreg        Serial registration
snapshot      Save video-stream as PNG images
sndfile       Audio dumper using libsndfile
sndio         Audio driver for OpenBSD
srtp          Secure RTP encryption (SDES) using libre SRTP-stack
stdio         Standard input/output UI driver
stun          Session Traversal Utilities for NAT (STUN) module
swscale       Video scaling using libswscale
syslog        Syslog module
turn          Obtaining Relay Addresses from STUN (TURN) module
uuid          UUID generator and loader
v4l2          Video4Linux2 video source
vidbridge     Video bridge module
vidinfo       Video info overlay module
vp8           VP8 video codec
vp9           VP9 video codec
vumeter       Display audio levels in console
webrtc_aec    Acoustic Echo Cancellation (AEC) using WebRTC SDK
webrtc_aecm   Acoustic Echo Cancellation (AEC) mobile using WebRTC SDK
wincons       Console input driver for Windows
winwave       Audio driver for Windows
x11           X11 video output driver

IETF RFC/I-Ds:

Supported platforms:

Supported versions of C Standard library

Supported compilers:

Supported versions of OpenSSL

Related projects

References