Hello, all.
Using nathelper + rtpproxy for subj. Kamailio has public and private network interfaces. Asterisk is only private. RTP Proxy is working in bridge mode and relaying traffic from UAC to Asterisks.
Everything is working fine, except one configuration. When the client is behind router ( a specific one, I do not have an access there to check ), and this UAC is making a call to other public extension, which is behind router, then RTP Proxy is relaying traffic to the caller, using another UDP port, then the packets arrive.
For instance: UAC 1 -> UAC 2
PUBLIC_IP:10 > KAMAILIO_IP:5555 KAMAILIO_IP:5678 > PUBLIC_IP:12
While for the UAC 2 it looks like:
PUBLIC_IP:20 > KAMAILIO_IP:6767 KAMAILIO_IP:4564 > PUBLIC_IP:20
The source and destination UDP ports are the same. As result, I can hear UAC 1 and he cannot hear me.
In case of we have UAC 3, which is behind other router, call is working fine with same configuration.
"It's routers fault" you can say, but in the same configuration ( I mean network, not kamailio ) it worked, but when RTPProxy was not in bridge mode and Kamailio and Asterisks were in public network. Reinvites are not allowed in both cases.
The question is, why the source and destination UDP ports are different? Using STUN in first case, cause without it, private IP written in contacts and as result, traffic relayed from Kamailio is incorrect, cause heading to private network which is unreachable.
Any ideas where to dig?