
Baresip is a portable and modular SIP User-Agent with audio and video support.
Copyright (c) 2010 - 2026 Alfred E. Heggestad and Contributors
Distributed under BSD license
Conferencing
Signaling:
Multicast sending & receiving
Security:
SDES key exchange protocol
Audio:
Configurable audio sample format (Signed 16-bit, 24-bit, Float etc)
Audio-codecs:
Opus
Audio-drivers:
Windows WASAPI audio-driver
Video:
Hardware acceleration for video encoder/decoder
Video-codecs:
VP9
Video-drivers:
X11 video-output
NAT-traversal:
PCP (Port Control Protocol) support
Networking:
automatic network roaming
Management:
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.
$ cmake -B build
$ cmake --build build -j
$ cmake --install build
$ cmake -B build -DCMAKE_BUILD_TYPE=Release
$ cmake --build build -j
$ cmake -B build -DMODULES="menu;account;g711"
$ cmake --build build -j
$ cmake -B build -DAPP_MODULES_DIR=../baresip-apps/modules -DAPP_MODULES="auloop;vidloop"
$ cmake --build build -j
$ cmake -B build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
$ cmake --build build -j
$ 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.
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.
The baresip project is using the 3-clause BSD license.
Patches can be sent via Github Pull-Requests or to the Baresip mailing-list.
aac Advanced Audio Coding (AAC) audio codec
aaudio Android AAudio driver
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
augain Module to adjust gain of audio source
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
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
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
in_band_dtmf In-band DTMF decoder
jack JACK Audio Connection Kit audio-driver
l16 L16 audio codec
libg722 G.722 audio codec
menu Interactive menu
mixausrc Mixes another audio source into audio stream
mixminus Mixes N-1 audio streams for conferencing
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
pipewire Pipewire sound driver
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
wasapi Windows Audio Session API (WASAPI) driver
webrtc_aec Acoustic Echo Cancellation (AEC) using WebRTC SDK
wincons Console input driver for Windows
x11 X11 video output driver
RFC 8843 Negotiating Media Multiplexing Using SDP
draft-ietf-payload-vp9-16
$ claude mcp add baresip \
-- python -m otcore.mcp_server <graph>