GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - sipwise/rtpengine: The Sipwise media proxy for Kamailio

BranchesTags
Open more actions menu

Latest commit

 

History

6,665 Commits
6,665 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
daemon
daemon
 
 
debian
debian
 
 
docker
docker
 
 
docs
docs
 
 
el
el
 
 
etc
etc
 
 
evs
evs
 
 
fixtures
fixtures
 
 
include
include
 
 
kernel-module
kernel-module
 
 
lib
lib
 
 
perf-tester
perf-tester
 
 
perl/NGCP
perl/NGCP
 
 
pkg/deb
pkg/deb
 
 
python
python
 
 
recording-daemon
recording-daemon
 
 
t
t
 
 
tests
tests
 
 
utils
utils
 
 
.dockerignore
.dockerignore
 
 
.gitignore
.gitignore
 
 
.gitreview
.gitreview
 
 
.mailmap
.mailmap
 
 
.readthedocs.yaml
.readthedocs.yaml
 
 
.release-version
.release-version
 
 
.shellcheckrc
.shellcheckrc
 
 
Dockerfile
Dockerfile
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
pyproject.toml
pyproject.toml
 
 
tox.ini
tox.ini
 
 

Repository files navigation

Code Testing Debian Package CI Coverity

What is rtpengine?

The Sipwise NGCP rtpengine is a proxy for RTP traffic and other UDP based media traffic. It's meant to be used with the Kamailio SIP proxy and forms a drop-in replacement for any of the other available RTP and media proxies.

Currently the only supported platform is GNU/Linux.

Mailing List

For general questions, discussion, requests for support, and community chat, join our mailing list. Please do not use the Github issue tracker for this purpose.

Features

  • Media traffic running over either IPv4 or IPv6
  • Bridging between IPv4 and IPv6 user agents
  • Bridging between different IP networks or interfaces
  • TOS/QoS field setting
  • Customizable port range
  • Multi-threaded
  • Advertising different addresses for operation behind NAT
  • In-kernel packet forwarding for low-latency and low-CPU performance
  • Automatic fallback to normal userspace operation if kernel module is unavailable
  • Support for Kamailio's rtpproxy module
  • Legacy support for old OpenSER mediaproxy module
  • HTTP, HTTPS, and WebSocket (WS and WSS) interfaces

When used through the rtpengine module (or its older counterpart called rtpproxy-ng), the following additional features are available:

  • Full SDP parsing and rewriting
  • Supports non-standard RTCP ports (RFC 3605)
  • ICE (RFC 8445) support:
    • Bridging between ICE-enabled and ICE-unaware user agents
    • Optionally acting only as additional ICE relay/candidate
    • Optionally forcing relay of media streams by removing other ICE candidates
    • Optionally act as an "ICE lite" peer only
    • Optional trickle ICE support (RFC 8838)
    • Optional ICE2 support
  • SRTP (RFC 3711) support:
    • Support for SDES (RFC 4568) and DTLS-SRTP (RFC 5764)
    • AES-CM and AES-F8 ciphers, both in userspace and in kernel
    • HMAC-SHA1 packet authentication
    • Bridging between RTP and SRTP user agents
    • Opportunistic SRTP (RFC 8643)
    • Legacy non-RFC (dual m= line) best-effort SRTP
    • AES-GCM Authenticated Encryption (AEAD) (RFC 7714)
    • a=tls-id as per RFC 8842
  • Support for RTCP profile with feedback extensions (RTP/AVPF, RFC 4585 and 5124)
  • Arbitrary bridging between any of the supported RTP profiles (RTP/AVP, RTP/AVPF, RTP/SAVP, RTP/SAVPF)
  • RTP/RTCP multiplexing (RFC 5761) and demultiplexing
  • Breaking of BUNDLE'd media streams (draft-ietf-mmusic-sdp-bundle-negotiation)
  • Recording of media streams, decrypted if possible
  • Transcoding and repacketization
  • Transcoding between RFC 2833/4733 DTMF event packets and in-band DTMF tones (and vice versa)
  • Injection of DTMF events or PCM DTMF tones into running audio streams
  • Playback of pre-recorded streams/announcements
  • Transcoding between T.38 and PCM (G.711 or other audio codecs)
  • Silence detection and comfort noise (RFC 3389) payloads
  • Media forking
  • Publish/subscribe mechanism for N-to-N media forwarding

There is also limited support for rtpengine to be used as a drop-in replacement for Janus using the native Janus control protocol (see below).

Rtpengine does not (yet) support:

  • ZRTP, although ZRTP passes through rtpengine just fine

Documentation

Check our general documentation here:

  • Read-the-Docs

For quick access, documentation for usage:

  • Compiling and Installing
  • Usage
  • Transcoding
  • Call recording
  • The NG Control Protocol
  • The TCP-NG Control Protocol
  • HTTP/WebSocket support
  • Janus Interface and Replacement Functionality

For quick access, documentation for development:

  • Architecture Overview
  • Unit-tests
  • Troubleshooting Overview
  • Glossary

Sponsors

  • Dataport AöR

Contribution

Every bit matters. Join us. Make the rtpengine community stronger.

About

The Sipwise media proxy for Kamailio

Resources

Readme
GPL-3.0 license
Activity
Custom properties

Stars

1.0k stars

Watchers

79 watching

Forks

475 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.