• Stars
    star
    749
  • Rank 58,608 (Top 2 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created about 10 years ago
  • Updated 20 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Sipwise media proxy for Kamailio

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

For quick access, documentation for usage:

For quick access, documentation for development:

Contribution

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

More Repositories

1

janus-client

javascript library to implement the websocket interface towards the janus server
122
star
2

kamailio

Kamailio SIP Proxy with Sipwise patches
C
58
star
3

sems

SIP Express Media Server, very fast and flexible SIP media server
C++
57
star
4

klish

Vanilla copy of klish upstream project implementing a CLI framework for custom shells
44
star
5

mediaproxy-ng

[DEPRECATED] Kernel-based media relay for Kamailio
37
star
6

sipsak

[DEPRECATED] SIP Swiss army knife
18
star
7

janus-admin

JanusAdmin is a node.js http client, that implements the entire admin interface of the Janus WebRTC Gateway
17
star
8

kamailio-deb-jenkins

Jenkins configuration for Kamailio Debian Packaging
HTML
13
star
9

ngrep-sip

capture SIP flow based on ngrep command
Roff
11
star
10

prosody

NGCP specific prosody modules
Lua
9
star
11

kamailio-config-tests

Kamailio configuration tests
Perl
9
star
12

ngcp-panel

The provisioning interface for the NGCP system
Perl
9
star
13

libtcap

Library for extracting fields from Sigtran TCAP/INAP messages
C
8
star
14

heartbeat

Subsystem for High-Availability Linux
8
star
15

asterisk

[DEPRECATED] Sipwise's custom asterisk for NGCP platforms
6
star
16

selenium-deb-pkg

[DEPRECATED] Debian package for selenium-server
Shell
6
star
17

ngcp-csc-ui

Customer Self-Care Web UI
Vue
5
star
18

ngcp-klish-config

The Sipwise configuration implementing the NGCP shell based on klish
5
star
19

ngcpcfg

central and templated based Configuration Management System for NGCP
Perl
5
star
20

ngcp-csc

[DEPRECATED] customer self care panel written in Ext JS
4
star
21

ngcp-api-tools

The scripts are either API related or use the API to work with NGCP.
Perl
3
star
22

rate-o-mat

Rating daemon for the NGCP
Perl
3
star
23

deployment-iso

Grml Sipwise ISO
Shell
3
star
24

sip-tester

[DEPRECATED] Performance testing tool for the SIP protocol
2
star
25

ngcp-rest-api

A new version of NGCP REST API
TypeScript
2
star
26

repoapi

REST full API for managing building jobs
Python
2
star
27

cleanup-tools

Database entry and binlog cleanup
Perl
2
star
28

sipwise-base

The Sipwise::Base perl module
Perl
2
star
29

reminder

Reminder calls for NGCP platform
Perl
1
star
30

ngcp-admin-ui

Administration UI to manage the ngcp platform (JS-based implementation of ngcp-panel.git)
Vue
1
star
31

db-schema

database schema for Sipwise's NGCP platform
Python
1
star
32

libhsclient-c-wrapper

A C wrapper library using C++ libhsclient underneath, with an abstracted interface for simpler usage of handlersockets
1
star
33

lua-uri

[DEPRECATED] Lua library which allows to normalize, validate and manipulate URIs/URLs
Lua
1
star
34

lua-lemock

[DEPRECATED] LeMock (Lua Easy Mock) for unit test
Lua
1
star
35

iaxmodem

[DEPRECATED] software modem with IAX2 connectivity
1
star
36

netscript

NGCP deployment scripts
1
star
37

asterisk-voicemail

Sipwise custom asterisk-voicemail
C
1
star
38

system-tests

run system tests against NGCP systems
Perl
1
star
39

acc-cdi

Check active calls and terminate them if calls are 'lost' due to server crash
1
star
40

cdr-exporter

CDR export utilities for NGCP platforms
Perl
1
star