Multi-Party Conferences in the RtpBridge

From RtpBridge
Jump to: navigation, search

Abstract

The RtpBridge supports a multi-conference mode. It is possible to create any number of conference participants. The number of conferences is unlimited and mixing operations are offloaded on the DSP C64x+ core simultaneously with transcoding and RTP packetizing.


How to create a conference connection

Conference connections are created by several usual connects (conference input and output). The syntax of the commands is similar to common RtpBridge commands syntax with adding the conference identifier. Please see the commands of conference connection below.

CONNECT <src_type>:<src_stream>:<src_idx>:[opt]  conf:<conf_id>
CONNECT conf:<conf_id> <dst_type>:<dst_stream>:<dst_idx>:[opt]

The fields are:

src_type, dst_type: RTP (RTP connection), TDM (TDM cross-connect), TDMOE (Pseudowire cross-connect)
src_stream, dst_stream: RTP: IP-address, TDM: E1/T1 Span number(Li0..Li4)
src_idx, dst_idx: RTP: Port number (local/remote), TDM: Timeslot
opt: Usually src_codec, dst_codec are voice codec used for the specified endpoint, e.g. alaw (or g711a), ulaw (or g711u), g729, g723, g726, etc.
conf_id: Conference identifier (any string to identify the conference)

The abbreviations are: src is source, dst - destination, li - span, ts – timeslot, codec - codec name, ip – IP-address, r_port – remote port number, l_port – local port number.

Note: If src_codec and dst_codec parameters are not specified, they take the default value. Currently the default codec is alaw. For the incoming RTP data src_codec can be overridden by the payload type of RTP packet automatically. In this case just omit this parameter.

Various conference connection schemes are available. Please see some examples below.

Some description about parameters in all examples below:

10.0.1.2 - Incoming RX RTP connection host, from ports range 7000-8000
10.0.1.3 - Outgoing TX RTP connection host, to remote ports 17000-18000
Local RTP Ports RtpBridge side - 50000-60000
conf_1, conf_2, conf_3 - Virtual conference points represents the corresponding conferences.


Simple RTP+RTP=>E1 conference by the RtpBridge

Conf1.jpg

connect rtp:10.0.1.2:7000:50000 conf:1
connect rtp:10.0.1.2:7001:50001 conf:1
connect conf:1 tdm:li0:ts1:g711a

Incoming Rtp connections from 10.0.1.2 ports 7000 and 7001 are listened on ports 50001 and 50002 by the RtpBridge and then mixed and send to the TDM E1 Li#0, TS1 codec G.711 A-law.


Simple E1+E1=>RTP conference by the RtpBridge

Conf2.jpg

connect tdm:li0:ts1:alaw conf:2
connect tdm:li0:ts2:alaw conf:2
connect conf:2 rtp:10.0.1.3:17000:50004:g711a

Incoming TDM E1 timeslots from Li#0 TS1 and TS2 are mixed and send to the RTP 10.0.1.3:17000 from port 50004 RtpBridge side using codec G.711 A-law.


Simple E1+RTP=>RTP conference by the RtpBridge

Conf3.jpg

connect tdm:<src_li#>:<src_ts#>:[src_codec_1] conf:3
connect rtp:<src_ip>:<src_port>:[src_codec_2] conf:3
connect conf:3 rtp:<dst_ip>:<dst_port>:[dst_codec]




Simple RTP+RTP=>RTP conference by the RtpBridge

Conf4.jpg

connect rtp:<src_ip_1>:<src_port_1>:[src_codec_1] conf:4
connect rtp:<src_ip_2>:<src_port_2>:[src_codec_2] conf:4
connect conf:4 rtp:<src_ip_3>:<src_port_3>:[src_codec_3]




Simple E1+E1=>E1 conference by the RtpBridge

TBD..

Example:

connect rtp:192.168.102.9:8002:7002 conf:test1
connect rtp:192.168.102.9:8004:7004 conf:test1
connect conf:test1 rtp:192.168.102.9:8006:7006:alaw