Baresip is a modular SIP User-Agent with audio and video support
Baresip is a portable and modular SIP User-Agent with audio and video support.
Copyright © 2010 - 2024 Alfred E. Heggestad and Contributors
Distributed under BSD license
Call features:
Signaling:
Security:
Audio:
Audio-codecs:
Audio-drivers:
Video:
Video-codecs:
Video-drivers:
NAT-traversal:
Networking:
Management:
Profiles:
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
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
RFC 2250 RTP Payload Format for the mpa Speech and Audio Codec
RFC 3016 RTP Payload Format for MPEG-4 Audio/Visual Streams
RFC 3262 Reliability of Provisional Responses for SIP
RFC 3311 SIP UPDATE Method
RFC 3428 SIP Extension for Instant Messaging
RFC 3711 The Secure Real-time Transport Protocol (SRTP)
RFC 3640 RTP Payload Format for Transport of MPEG-4 Elementary Streams
RFC 3856 A Presence Event Package for SIP
RFC 3863 Presence Information Data Format (PIDF)
RFC 3891 The SIP “Replaces” Header
RFC 4145 TCP-Based Media Transport in SDP
RFC 4240 Basic Network Media Services with SIP (partly)
RFC 4347 Datagram Transport Layer Security
RFC 4568 SDP Security Descriptions for Media Streams
RFC 4572 Connection-Oriented Media Transport over TLS Protocol in SDP
RFC 4574 The SDP Label Attribute
RFC 4585 Extended RTP Profile for RTCP-Based Feedback (RTP/AVPF)
RFC 4587 RTP Payload Format for H.261 Video Streams
RFC 4796 The SDP Content Attribute
RFC 4867 RTP Payload Format for the AMR and AMR-WB Audio Codecs
RFC 4961 Symmetric RTP / RTP Control Protocol (RTCP)
RFC 5285 A General Mechanism for RTP Header Extensions
RFC 5373 Requesting Answering Modes for SIP
RFC 5506 Support for Reduced-Size RTCP
RFC 5576 Source-Specific Media Attributes in SDP
RFC 5577 RTP Payload Format for ITU-T Recommendation G.722.1
RFC 5626 Managing Client-Initiated Connections in SIP
RFC 5627 Obtaining and Using GRUUs in SIP
RFC 5761 Multiplexing RTP Data and Control Packets on a Single Port
RFC 5763 Framework for Establishing a SRTP Security Context Using DTLS
RFC 5764 DTLS Extension to Establish Keys for SRTP
RFC 5888 The SDP Grouping Framework
RFC 6157 IPv6 Transition in SIP
RFC 6184 RTP Payload Format for H.264 Video
RFC 6263 App. Mechanism for Keeping Alive NAT Associated with RTP / RTCP
RFC 6416 RTP Payload Format for MPEG-4 Audio/Visual Streams
RFC 6464 A RTP Header Extension for Client-to-Mixer Audio Level Indication
RFC 6716 Definition of the Opus Audio Codec
RFC 6886 NAT Port Mapping Protocol (NAT-PMP)
RFC 7064 URI Scheme for STUN Protocol
RFC 7065 TURN Uniform Resource Identifiers
RFC 7310 RTP Payload Format for Standard apt-X and Enhanced apt-X Codecs
RFC 7587 RTP Payload Format for the Opus Speech and Audio Codec
RFC 7741 RTP Payload Format for VP8 Video
RFC 7742 WebRTC Video Processing and Codec Requirements
RFC 7798 RTP Payload Format for High Efficiency Video Coding (HEVC)
RFC 8285 A General Mechanism for RTP Header Extensions
RFC 8843 Negotiating Media Multiplexing Using SDP
draft-ietf-payload-vp9-16