1RTPPROXY(8)                     [FIXME: manual]                    RTPPROXY(8)
2
3
4

NAME

6       rtpproxy - RTP (Real-time Transport Protocol) Proxy Server
7

SYNOPSIS

9       rtpproxy [-?] [-2] [-f] [-v] [-V] [-R] [-l addr1[/addr2]]
10                [-6 addr1[/addr2]] [-s ctrl_socket] [-t tos] [-p pidfile]
11                [-T max_ttl] [-r rdir [-S sdir]] [-L nofile_limit]
12                [-A advaddr1[/advaddr2]] [-m min_port] [-M max_port]
13                [-u uname[:gname]] [-w sock_mode] [-F] [-i]
14                [-n timeout_socket] [-P] [-a] [-d log_level[:log_facility]]
15                [-W setup_ttl]
16

DESCRIPTION

18       rtpproxy is a symmetric RTP proxy designed to be used in conjunction
19       with the SIP Express Router (SER) or any other SIP proxy or SIP B2BUA
20       capable of rewriting SDP bodies in SIP messages that it processes.
21
22       The main purpose of rtpproxy is to make the communication between SIP
23       user agents behind NAT(s) (Network Address Translator) possible.
24       Several cases exists when direct end-to-end communication is not
25       possible and RTP streams have to be relayed through another host.
26       Rtpproxy can be used to setup such a relaying host.
27
28       When two listen interfaces have been specified using the command line
29       parameters described below then rtpproxy will enter so called bridging
30       mode. In briding mode rtpproxy forwards RTP packets received on one
31       interface to the other interface and vice versa. This mode can be used
32       to forward RTP packets between networks without direct network level
33       connectivy (provided that the host running rtpproxy has one interface
34       in both of them). One particular application of bridging mode is
35       IPv4/IPv6 traversal of RTP packets.
36
37       When instructured by SER rtpproxy can also record the entire RTP
38       session in a file on a local harddisk or play a pre-recorded file to
39       the user agent (so called Music-on-Hold).
40

OPTIONS

42       -?
43           Show summary of options.
44
45       -2
46           Send every RTP packet twice in sessions that use low-bitrate
47           codecs. Only packets that are smaller than 128 bytes will be sent
48           twice. This option can improve audio quality on lossy links.
49
50       -f
51           Rtpproxy will stay in foreground mode if this option is set.
52
53       -v
54           Show version of program.
55
56       -V
57           Show command protocol version.
58
59       -l addr1[/addr2]
60           IPv4 listen IP address(es). You can specify either one or two
61           addresses. If two addresses have been specified then rtpproxy will
62           work in bridging mode.
63
64       -6 addr1[/addr2]
65           IPv6 listen IP address(es). You can specify either one or two
66           addresses. If two addresses have been specified then rtpproxy will
67           work in bridging mode.
68
69       -s ctrl_socket
70           This parameter configures rtpproxy control socket. The control
71           socket is used by nathelper module of SER to create/modify/delete
72           RTP sessions to be relayed. Format of ctrl_socket is
73           <type>:<socket>. Following types are supported:
74
75           ·    udp: Create UDP control socket. In this mode RTPProxy will
76               listen on UDP for control messages from SER/nathelper.
77
78               Example: -s udp:127.0.0.1:9000
79
80               IP address can be '*' in which case rtpproxy will listen on all
81               local interfaces. If omitted port 22222 is used.
82
83                   Note
84                   RTPProxy control protocol has no built-in security
85                   mechanisms. Make sure that you protect the listening IP and
86                   port properly when using RTPProxy with UDP control socket.
87
88           ·    udp6: Create IPv6 UDP control socket. In this mode RTPProxy
89               will listen on UDP/IPv6 for control messages from
90               SER/nathelper.
91
92               Example: -s udp6:::1:9000
93
94           ·    unix: Create UNIX domain socket for control interface. In this
95               mode SER/nathelper and RTPProxy must be running on the same
96               host. This is the default setting for both SER/nathelper and
97               rtpproxy.
98
99               Example: -s unix:/var/run/rtpproxy.sock
100
101               Default value is /var/run/rtpproxy.sock.
102
103
104       -t tos
105           Set ToS (Type of Service) in the outgoing UDP packets to this
106           value. Default value is 0xB8. Setting this parameter to -1 disables
107           setting ToS resulting in operating system default ToS being used
108           instead.
109
110       -r rec_dir
111           Directory where recorded RTP sessions will be stored.
112
113       -S spool_dir
114           Spool directory for RTP sessions being recorded. The file will be
115           moved to directory configured in -r option after the session
116           finishes.
117
118       -R
119           Do not record RTCP when recording an RTP session. This option is
120           disabled (rtpproxy will record RTCP) by default.
121
122       -p pid_file
123           This parameter configures the name of the file where PID of running
124           rtpproxy will be stored. Default is /var/run/rtpproxy.pid.
125
126       -T max_ttl
127           Limit the maximum TTL (Time To Live) of outgoing IP packets to the
128           value of max_ttl.
129
130       -L nofile_limit
131           Adjust the number of simultaneous open connections. Please note
132           that each RTP media stream requires four open connections. A SIP
133           call can open more than one RTP media stream depending on the
134           client's setup.
135
136       -A advaddr1[/advaddr2]
137           Setup advertised address if necessary.
138
139       -m min_port
140           Set lower limit on UDP ports range that the RTPproxy uses for
141           RTP/RTCP sessions to min_port. Default is 35000.
142
143       -M max_port
144           Set upper limit on UDP ports range that the RTPproxy uses for
145           RTP/RTCP sessions to max_port. Default is 65000.
146
147       -u uname[:gname]
148           Switch RTPproxy to UID identified by the uname and optional GID
149           identified by gname when proxy is up and running.
150
151       -w sock_mode
152           Set access mode for the controlling UNIX-socket (if used). Only
153           applies if RTPproxy runs under a different GID using -u option.
154
155       -F
156           By default the RTPproxy will warn user if running as superuser (UID
157           0) in local control mode and refuse to run in remote control mode
158           at all. This switch removes the check.
159
160       -i
161           Enable independent timeout mode. By default, a timeout (which
162           results in automatic destruction of the session) can only occur if
163           no RTP packets are received on any of the session's ports. This
164           option if set varies that behaviour, such that a timeout will occur
165           if packets are still being received on one port but not the other.
166           The option should be used with caution since in some cases it's
167           perfectly fine to have packets coming from only one side of
168           conversation (i.e. when the second party has muted its audio).
169
170       -n timeout_socket
171           This parameter configures the optional timeout notification socket.
172           The socket should be created by another application, preferably
173           before starting rtpproxy. For those sessions where the timeout
174           mechanism is enabled, notifications are sent on this socket if the
175           session times out.
176
177           Format of timeout_socket is <type>:<socket>. Following types are
178           supported:
179
180           ·    unix:Connect to UNIX domain socket for sending timeout
181               notifications. In this mode B2BUA and RTPProxy must be running
182               on the same host.
183
184               Example: -n unix:/var/run/rtpproxy_timeout.sock
185
186           ·    tcp:Connect to a remote host using TCP/IP for sending timeout
187               notifications. Format of the socket parameter in this case is
188               <host>:<port>.
189
190               Example: -n tcp:10.20.30:12345
191
192           There is no default value, notifications are not sent and not
193           permitted unless a value is specified explicitly.
194
195       -P
196           Record sessions using PCAP file format instead of non-standard
197           ad-hoc format. The PCAP format, which is the de-facto standard for
198           packet capturing software, has the advantage of being compatible
199           with numerous third-party tools and utilities, such as Wireshark
200           (Ethereal) for example. The drawback of PCAP is sligtly larger
201           overhead (extra 12 bytes for every saved RTP packet for IPv4).
202           Also, recording IPv6 sessions in PCAP format is not supported at
203           the moment.
204
205       -a
206           Record all sessions going through the RTPproxy unconditionally. By
207           default the RTPproxy requires call control software (i.e. SER,
208           OpenSER or B2BUA) to enable recording explicitly on per-session
209           basis by sending appropriate record command.
210
211       -d log_level[:log_facility]
212           This parameter configures the verbosity level of the log output.
213           Possible log_level values in the order from the most verboe to the
214           least verbose are: DBUG, INFO, WARN, ERR and CRIT.
215
216           The optional log_facility parameter sets syslog(3) facility
217           assigned to log messages.
218
219           Example: -d WARN:LOG_LOCAL5
220
221           The default level in foreground mode is is DBUG, in background -
222           WARN and facility is LOG_DAEMON.
223

HOWITWORKS

225       When SER receives an INVITE request, it extracts Call-ID from it and
226       communicates it to rtpproxy via Unix domain socket or UDP. Rtproxy
227       looks for an existing session with such Call-ID. If the session exists
228       it returns UDP port for that session, if not, then it creates a new
229       session, binds to a first empty UDP port from the range specified at
230       the compile time and returns number of that port to a SER. After
231       receiving reply from the proxy, SER replaces media ip:port in the SDP
232       to point to the proxy and forwards request as usually.
233
234       When SER receives a non-negative SIP reply with SDP it again extracts
235       Call-ID from it and communicates it to the proxy. In this case the
236       proxy does not allocate a new session if it doesn't exist, but simply
237       performs a lookup among existing sessions and returns either a port
238       number if the session is found, or error code indicating that there is
239       no session with such id. After receiving positive reply from the proxy,
240       SER replaces media ip:port in the SIP reply to point to the proxy and
241       forwards reply as usually.
242
243       After the session has been created, the proxy listens on the port it
244       has allocated for that session and waits for receiving at least one UDP
245       packet from each of two parties participating in the call. Once such
246       packet is received, the proxy fills one of two ip:port structures
247       associated with each call with source ip:port of that packet. When both
248       structures are filled in, the proxy starts relaying UDP packets between
249       parties.
250
251       The proxy tracks idle time for each of existing sessions (i.e. the time
252       within which there were no packets relayed), and automatically cleans
253       up a sessions whose idle times exceed the value specified at compile
254       time (60 seconds by default).
255

FILES

257       /usr/sbin/rtpproxy
258

LICENSE

260       This program is licensed under the BSD license. See COPYING file in the
261       rtpproxy sources for details.
262

AVAILABILITY

264       The latest version of this program can be found at
265       http://www.rtpproxy.org/.
266

SEEALSO

268       ser(8).
269

AUTHOR

271       Maxim Sobolev
272           Author.
273
275       Copyright © 2006 janakj
276
277
278
279[FIXME: source]                  Jun 16, 2008                      RTPPROXY(8)
Impressum