- Notifications
You must be signed in to change notification settings - Fork456
Baresip is a modular SIP User-Agent with audio and video support
License
baresip/baresip
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Baresip is a portable and modular SIP User-Agent with audio and video support.
Copyright (c) 2010 - 2025 Alfred E. Heggestad and Contributors
Distributed under BSD license
Call features:
- Unlimited number of SIP accounts
- Unlimited number of calls
- Unattended call transfer
- Auto answer
- Call hold and resume
- Microphone mute
- Call waiting
- Call recording
- Peer to peer calls
- Video calls
- Instant Messaging
- Custom ring tones
- Repeat last call (redial)
- Message Waiting Indication (MWI)
- Address book with presence
- Conferencing
Signaling:
- SIP protocol support
- SIP outbound protocol for NAT-traversal
- SIP Re-invite
- SIP Routes
- SIP early media support
- DNS NAPTR/SRV support
- Multiple accounts support
- DTMF support (RTP, SIP INFO)
- Multicast sending & receiving
Security:
- Signalling encryption (TLS)
- Audio and video encryption (Secure RTP)
- DTLS-SRTP key exchange protocol
- ZRTP key exchange protocol
- SDES key exchange protocol
Audio:
- Low latency audio pipeline
- High definition audio codecs
- Audio device configuration
- Audio filter plugins
- Internal audio resampler for fixed sampling rates
- Linear 16 bit wave format support for ringtones
- Packet loss concealment (PLC)
- Configurable ringtone playback device
- Automatic gain control (AGC) and Noise reducation
- Acoustic echo control (AEC)
- Configurable audio sample format (Signed 16-bit, 24-bit, Float etc)
- EBU ACIP (Audio Contribution over IP) Profile
Audio-codecs:
- AAC
- aptX
- AMR narrowband, AMR wideband
- Codec2
- G.711
- G.722
- G.726
- L16
- MPA
- Opus
Audio-drivers:
- Advanced Linux Sound Architecture (ALSA) audio-driver
- PulseAudio POSIX OSes audio-driver
- Android OpenSLES audio-driver
- Gstreamer playbin input audio-driver
- JACK Audio Connection Kit audio-driver
- MacOSX/iOS coreaudio/audiounit audio-driver
- Portaudio audio-driver
- Windows WASAPI audio-driver
Video:
- Support for H.264, H.265, VP8, VP9, AV1 Video
- Configurable resolution/framerate/bitrate
- Configurable video input/output
- Support for asymmetric video
- Configurable video pixel format
- Hardware acceleration for video encoder/decoder
Video-codecs:
- AV1
- H.264
- H.265
- VP8
- VP9
Video-drivers:
- iOS avcapture video-source
- FFmpeg/libav libavformat/avdevice input
- Direct Show video-source
- MacOSX AVCapture video-source
- Linux V4L/V4L2 video-source
- X11 grabber video-source
- DirectFB video-output
- SDL2 video-output
- X11 video-output
NAT-traversal:
- STUN support
- TURN server support
- ICE support
- NATPMP support
- PCP (Port Control Protocol) support
Networking:
- multihoming, IPv4/IPv6
- automatic network roaming
Management:
- Embedded web-server with HTTP interface
- Command-line console over UDP/TCP
- Command line interface (CLI)
- Simple configuration files
- MQTT (Message Queue Telemetry Transport) module
Profiles:
- EBU ACIP (Audio Contribution over IP) Profile
baresip is using CMake, and the following packages must beinstalled before building:
SeeWiki: Install Stable ReleaseorWiki: Install GIT Versionfor 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 generatedthe first time you run baresip.
The API documentation can be build usingdoxygen.
$ doxygen mk/Doxyfile
By default the documentation is written to../baresip-dox
, if you want tochange the destination directory you can change theOUTPUT_DIRECTORY
inmk/Doxyfile
.
- Configuration examples are available in theexamplesdirectory.
- Documentation on configuring baresip can be found in theWiki.
The baresip project is using the 3-clause BSD license.
Patches can be sent via GithubPull-Requests or to the Baresipmailing-list.
- Minimalistic and modular VoIP client
- SIP, SDP, RTP/RTCP, STUN/TURN/ICE
- IPv4 and IPv6 support
- RFC-compliancy
- Robust, fast, low footprint
- Portable C99 and C11 source code
aac Advanced Audio Coding (AAC) audio codecaccount Account loaderalsa ALSA audio driveramr Adaptive Multi-Rate (AMR) audio codecaptx Audio Processing Technology codec (aptX)aubridge Audio bridge moduleauconv Audio sample format converteraudiounit AudioUnit audio driver for MacOSX/iOSaufile Audio module for using a WAV-file as audio inputauresamp Audio resamplerausine Audio sine wave input moduleav1 AV1 video codecavcapture Video source using iOS AVFoundation video captureavcodec Video codec using FFmpeg/libav libavcodecavfilter Video filter using FFmpeg libavfilteravformat Video source using FFmpeg/libav libavformatcodec2 Codec2 low bit rate speech codeccons UDP/TCP console UI drivercontact Contacts modulecoreaudio Apple macOS Coreaudio driverctrl_dbus Control interface using DBUSctrl_tcp TCP control interface using JSON payloaddebug_cmd Debug commandsdirectfb DirectFB video display moduledshow Windows DirectShow video sourcedtls_srtp DTLS-SRTP end-to-end encryptionebuacip EBU ACIP (Audio Contribution over IP) Profileecho Echo server moduleevdev Linux input driverfakevideo Fake video input/output driverg711 G.711 audio codecg722 G.722 audio codecg7221 G.722.1 audio codecg726 G.726 audio codecgst Gstreamer audio sourcegtk GTK+ 3 menu-based UIgzrtp ZRTP module using GNU ZRTP C++ libraryhttpd HTTP webserver UI-modulehttpreq HTTP request moduleice ICE protocol for NAT Traversaljack JACK Audio Connection Kit audio-driverl16 L16 audio codecmenu Interactive menumixausrc Mixes another audio source into audio streammixminus Mixes N-1 audio streams for conferencingmpa MPA Speech and Audio Codecmqtt MQTT (Message Queue Telemetry Transport) modulemwi Message Waiting Indicationnatpmp NAT Port Mapping Protocol (NAT-PMP) modulenetroam Detects and applies changes of the local network addressesopensles OpenSLES audio driveropus OPUS Interactive audio codecopus_multistream OPUS multistream audio codecpcp Port Control Protocol (PCP) moduleplc Packet Loss Concealment (PLC) using spandspportaudio Portaudio driverpulse Pulseaudio driverpresence Presence modulertcpsummary RTCP summary modulesdl Simple DirectMedia Layer 2.0 (SDL) video output driverselfview Video selfview moduleserreg Serial registrationsnapshot Save video-stream as PNG imagessndfile Audio dumper using libsndfilesndio Audio driver for OpenBSDsrtp Secure RTP encryption (SDES) using libre SRTP-stackstdio Standard input/output UI driverstun Session Traversal Utilities for NAT (STUN) moduleswscale Video scaling using libswscalesyslog Syslog moduleturn Obtaining Relay Addresses from STUN (TURN) moduleuuid UUID generator and loaderv4l2 Video4Linux2 video sourcevidbridge Video bridge modulevidinfo Video info overlay modulevp8 VP8 video codecvp9 VP9 video codecvumeter Display audio levels in consolewebrtc_aec Acoustic Echo Cancellation (AEC) using WebRTC SDKwebrtc_aecm Acoustic Echo Cancellation (AEC) mobile using WebRTC SDKwincons Console input driver for Windowswinwave Audio driver for Windowsx11 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
- Android (7.0 or later)
- Apple MacOS 11 and later (Xcode 10 or later)
- Apple iOS 10.0 or later
- Linux (kernel 4.0 or later, and glibc 2.5.x or later)
- Windows 10 or later (mingw and VS2019)
- Android bionic
- BSD libc
- GNU C Library (glibc)
- Musl
- Windows C Run-Time Libraries (CRT)
- uClibc
- clang 10.x or later
- gcc 9.x or later
- MSVC 2019, 2022
- OpenSSL version 1.1.1
- OpenSSL version 3.x.x
- LibreSSL version 3.x
- Github:https://github.com/baresip/baresip
- Mailing-list:https://groups.google.com/g/baresip
About
Baresip is a modular SIP User-Agent with audio and video support