Baresip is a modular SIP User-Agent with audio and video support
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Alfred E. Heggestad bca1461f50 sndio: audio driver for OpenBSD 7 years ago
..
COPYING baresip 0.4.10 8 years ago
ChangeLog baresip 0.4.10 8 years ago
README sndio: audio driver for OpenBSD 7 years ago
TODO baresip 0.4.10 8 years ago

README

README
------

Baresip is a portable and modular SIP User-Agent with audio and video support
Copyright (c) 2010 - 2014 Creytiv.com

Distributed under BSD license


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)

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

* Audio-codecs:
- AMR narrowband, AMR wideband
- BroadVoice32 BV32
- CELT
- G.711
- G.722
- G.726
- GSM
- iLBC
- iSAC
- L16
- Opus
- Silk
- Speex

* Audio-drivers:
- Advanced Linux Sound Architecture (ALSA) audio-driver
- Android OpenSLES audio-driver
- Gstreamer playbin input audio-driver
- MacOSX/iOS coreaudio/audiounit audio-driver
- Open Sound System (OSS) audio-driver
- Portaudio audio-driver
- Windows winwave audio-driver

* Video:
- Support for H.264, H.263, VP8, MPEG-4 Video
- Configurable resolution/framerate/bitrate
- Configurable video input/output
- Support for asymmetric video

* Video-codecs:
- H.264
- H.263
- VP8
- MPEG-4

* Video-drivers:
- iOS avcapture video-source
- FFmpeg libavformat/avdevice input
- Cairo video-source test module
- Direct Show video-source
- MacOSX QTcapture/quicktime video-source
- RST media player
- Linux V4L/V4L2 video-source
- X11 grabber video-source
- DirectFB video-output
- OpenGL/OpenGLES video-output
- SDL/SDL2 video-output
- X11 video-output

* NAT-traversal:
- STUN support
- TURN server support
- ICE and ICE-lite support
- NATPMP 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


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:

account Account loader
alsa ALSA audio driver
amr Adaptive Multi-Rate (AMR) audio codec
aubridge Audio bridge module
audiounit AudioUnit audio driver for MacOSX/iOS
auloop Audio-loop test module
avcapture Video source using iOS AVFoundation video capture
avcodec Video codec using FFmpeg
avformat Video source using FFmpeg libavformat
bv32 BroadVoice32 audio codec
cairo Cairo video source
celt CELT audio codec (obsolete, use opus instead)
cons UDP/TCP console UI driver
contact Contacts module
coreaudio Apple Coreaudio driver
directfb DirectFB video display module
dshow Windows DirectShow video source
dtls_srtp DTLS-SRTP end-to-end encryption
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
gsm GSM audio codec
gst Gstreamer audio source
httpd HTTP webserver UI-module
ice ICE protocol for NAT Traversal
ilbc iLBC audio codec
isac iSAC audio codec
l16 L16 audio codec
mda Symbian Mediaserver audio driver (now deprecated)
menu Interactive menu
mwi Message Waiting Indication
natbd NAT Behavior Discovery Module
natpmp NAT Port Mapping Protocol (NAT-PMP) module
opengl OpenGL video output
opengles OpenGLES video output
opensles OpenSLES audio driver
opus OPUS Interactive audio codec
oss Open Sound System (OSS) audio driver
plc Packet Loss Concealment (PLC) using spandsp
portaudio Portaudio driver
presence Presence module
qtcapture Apple QTCapture video source driver
quicktime Apple Quicktime video source driver
rst Radio streamer using mpg123
sdl Simple DirectMedia Layer (SDL) video output driver
sdl2 Simple DirectMedia Layer v2 (SDL2) video output driver
selfview Video selfview module
silk SILK audio codec
snapshot Save video-stream as PNG images
sndfile Audio dumper using libsndfile
sndio Audio driver for OpenBSD
speex Speex audio codec
speex_aec Acoustic Echo Cancellation (AEC) using libspeexdsp
speex_pp Audio pre-processor using libspeexdsp
srtp Secure RTP encryption
stdio Standard input/output UI driver
stun Session Traversal Utilities for NAT (STUN) module
syslog Syslog module
turn Obtaining Relay Addresses from STUN (TURN) module
uuid UUID generator and loader
v4l Video4Linux video source
v4l2 Video4Linux2 video source
vidbridge Video bridge module
vidloop Video-loop test module
vpx VP8/VPX video codec
vumeter Display audio levels in console
wincons Console input driver for Windows
winwave Audio driver for Windows
x11 X11 video output driver
x11grab X11 grabber video source
zrtp ZRTP media encryption module


IETF RFC/I-Ds:

* RFC 2190 RTP Payload Format for H.263 Video Streams (Historic)
* RFC 2429 RTP Payload Format for 1998 ver of ITU-T Rec. H.263 Video (H.263+)
* RFC 3016 RTP Payload Format for MPEG-4 Audio/Visual Streams
* RFC 3428 SIP Extension for Instant Messaging
* RFC 3711 The Secure Real-time Transport Protocol (SRTP)
* RFC 3856 A Presence Event Package for SIP
* RFC 3863 Presence Information Data Format (PIDF)
* RFC 3951 Internet Low Bit Rate Codec (iLBC)
* RFC 3952 RTP Payload Format for iLBC Speech
* RFC 3984 RTP Payload Format for H.264 Video
* RFC 4145 TCP-Based Media Transport in SDP
* RFC 4240 Basic Network Media Services with SIP (partly)
* RFC 4298 Broadvoice Speech Codecs
* 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 4629 RTP Payload Format for ITU-T Rec. H.263 Video
* 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 5168 XML Schema for Media Control
* RFC 5506 Support for Reduced-Size RTCP
* RFC 5574 RTP Payload Format for the Speex Codec
* 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 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 5780 NAT Behaviour Discovery Using STUN
* RFC 6263 App. Mechanism for Keeping Alive NAT Associated with RTP / RTCP
* RFC 6716 Definition of the Opus Audio Codec
* RFC 6886 NAT Port Mapping Protocol (NAT-PMP)

* draft-ietf-avt-rtp-isac-04
* draft-ietf-payload-vp8-08
* draft-spittka-payload-rtp-opus-00


Architecture:


.------.
|Video |
_ |Stream|\
/|'------' \ 1
/ \
/ _\|
.--. N .----. M .------. 1 .-------. 1 .-----.
|UA|--->|Call|--->|Audio |--->|Generic|--->|Media|
'--' '----' |Stream| |Stream | | NAT |
|1 '------' '-------' '-----'
| C| 1| |
\|/ .-----. .----. |
.-------. |Codec| |Jbuf| |1
| SIP | '-----' '----' |
|Session| 1| /|\ |
'-------' .---. | \|/
|DSP| .--------.
'---' |RTP/RTCP|
'--------'
| SRTP |
'--------'

A User-Agent (UA) has 0-N SIP Calls
A SIP Call has 0-M Media Streams


Supported platforms:

* Linux
* FreeBSD
* OpenBSD
* NetBSD
* Symbian OS
* Solaris
* Windows
* Apple Mac OS X and iOS
* Android


Supported compilers:

* gcc (v2.9x to v4.x)
* gcce
* llvm clang
* ms vc2003 compiler
* codewarrior


External dependencies:

libre
librem


Feedback:

- Please send feedback to <libre@creytiv.com>