Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

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

Sign up

Baresip is a modular SIP User-Agent with audio and video support

License

NotificationsYou must be signed in to change notification settings

baresip/baresip

Repository files navigation

Baresip Logo

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

BuildLintOpenSSL and LibreSSLValgrind

Features:

  • 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

Building

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

SeeWiki: Install Stable ReleaseorWiki: Install GIT Versionfor 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 generatedthe first time you run baresip.

Build documentation

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.

Examples

  • Configuration examples are available in theexamplesdirectory.
  • Documentation on configuring baresip can be found in theWiki.

License

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

Contributing

Patches can be sent via GithubPull-Requests or to the Baresipmailing-list.

Design goals:

  • 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

Modular Plugin Architecture:

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

IETF RFC/I-Ds:

  • 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

Supported platforms:

  • 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)

Supported versions of C Standard library

  • Android bionic
  • BSD libc
  • GNU C Library (glibc)
  • Musl
  • Windows C Run-Time Libraries (CRT)
  • uClibc

Supported compilers:

  • clang 10.x or later
  • gcc 9.x or later
  • MSVC 2019, 2022

Supported versions of OpenSSL

  • OpenSSL version 1.1.1
  • OpenSSL version 3.x.x
  • LibreSSL version 3.x

Related projects

References


[8]ページ先頭

©2009-2025 Movatter.jp