Skip to content
forked from baresip/baresip

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

Notifications You must be signed in to change notification settings

tonyhkg852/baresip

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

baresip README

Baresip Logo

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

Build ccheck OpenSSL and LibreSSL Valgrind

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
  • 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
    • GSM
    • iLBC
    • 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 winwave audio-driver
  • Video:

    • Support for H.265, H.264, H.263, VP8, VP9 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:

    • H.265
    • H.264
    • H.263
    • VP8
    • VP9
  • Video-drivers:

    • iOS avcapture video-source
    • FFmpeg/libav libavformat/avdevice input
    • Direct Show video-source
    • MacOSX AVCapture video-source
    • RST media player
    • 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 GNU makefiles, and the following packages must be installed before building:

Build with debug enabled

$ make
$ sudo make install

Build with release

$ make RELEASE=1
$ sudo make RELEASE=1 install

Build with clang compiler

$ make CC=clang
$ sudo make CC=clang install

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

$ baresip

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

Examples

  • Configuration examples are available in the examples directory.
  • Documentation on configuring baresip can be found in the Wiki.

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:

  • Minimalistic and modular VoIP client
  • SIP, SDP, RTP/RTCP, STUN/TURN/ICE
  • IPv4 and IPv6 support
  • RFC-compliancy
  • Robust, fast, low footprint
  • Portable C89 and C99 source code

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
audiounit     AudioUnit audio driver for MacOSX/iOS
aufile        Audio module for using a WAV-file as audio input
auloop        Audio-loop test module
ausine        Audio sine wave input module
avcapture     Video source using iOS AVFoundation video capture
avcodec       Video codec using FFmpeg/libav libavcodec
avformat