sippy / rtpproxy

The RTPproxy is a high-performance software proxy for RTP streams that can work together with Sippy B2BUA, Kamailio, OpenSIPS and SER.
http://rtpproxy.org
BSD 2-Clause "Simplified" License
405 stars 114 forks source link

rtprpoxy is not bridging RTP in bridge-mode #152

Closed vgololobov-rdtt closed 1 month ago

vgololobov-rdtt commented 1 month ago

I am trying to start the rtproxy in "bridge' mode on my PC, having two IPs in different subnets

When I launch ./rtpproxy -l 192.168.0.3/10.0.0.3 -s udp:localhost:9000 -f -d DBUG

and send the test comand nc -u 127.0.0.1 9000 t1 UEI 123abc 192.168.0.2 5000 tutag

I receive the reply from rtpproxy t1 44832 192.168.0.3

but only 192.168.0.3:44832 is opened netstat -na | grep udp udp 0 0 0.0.0.0:32796 0.0.0.0:
udp 0 0 0.0.0.0:111 0.0.0.0:

udp 0 0 0.0.0.0:123 0.0.0.0:
udp 0 0 127.0.0.1:323 0.0.0.0:

udp 0 0 0.0.0.0:514 0.0.0.0:
udp 0 0 127.0.0.1:9000 0.0.0.0:

udp 0 0 127.0.0.1:43071 127.0.0.1:9000 ESTABLISHED udp 0 0 192.168.0.3:44832 0.0.0.0:
udp 0 0 192.168.0.3:44833 0.0.0.0:

udp 0 0 0.0.0.0:5353 0.0.0.0:*

But I suppose that also some udp-port has to be opened on 10.0.0.3 side of PC. Am I correct in my assumptions?

sobomax commented 1 month ago

Hi @vgololobov-rdtt ! Well, the rtpproxy operates in the "lazy" mode, that is socket on a particular side won't be opened until necessary. This allows us not to waste resources on calls that are not going to connect. As such, the port on the opposite side is going to be allocated once corresponding "L" command is received as triggered by the 183/200 from the "bob side". Hope it explains, feel free to ask if something is still unclear.

vgololobov-rdtt commented 1 month ago

Maxim, thanks a lot. Now I see the full RTP-bridge opened. For me it was unclear, that "L" command is for callee answer. So I used "U" twise instead.