Hello
I am trying to make a test setup to test the RTPENGINE.

Case 1:
Now my setup is Kazoo . i.e.:

Subsriber A ---Asterisk (192.168.175.136)-----via NAT(10.111.101.3)-------------Kamailio(10.10.11.104) ----FreeSwitch(10.10.11.104) 
Subscriber B is connected directly to Kamailio (this subscriber is in the same network)


Case 2:
 
When A calls to B - the sound both ways, so it is ok.

Subsriber A ---Asterisk (10.20.20.101)-----via NAT(10.11.97.12)-------------Kamailio(10.10.11.104) ----FreeSwitch(10.10.11.104) 
Subscriber B is connected directly to Kamailio (this subscriber is in the same network)

 WITH RTPENGINE:

When A calls to B - the sound is absent, no sound.

I compared both dumps the difference only in addresses
And what I read in nathelper module:
  • 1 - Contact header field is searched for occurrence of RFC1918 addresses.
  • 2 - the "received" test is used: address in Via is compared against source IP address of signaling
  • 4 - Top Most VIA is searched for occurrence of RFC1918 addresses
  • 8 - SDP is searched for occurrence of RFC1918 addresses
  • 16 - test if the source port is different from the port in Via
  • 32 - test if the source IP address of signaling is a RFC1918 address
All flags can be bitwise combined, the test returns true if any of the tests identified a NAT.


in nat-traversal-role.cfg
I see:
 if (nat_uac_test("3")) {
        force_rport();
        fix_nated_contact();
    }

    if (has_body("application/sdp") && nat_uac_test("8")) {
        fix_nated_sdp("10");
    }

As I understand - both addresses are RFC1918
but in case 2 the RTPENGINE is not kernalized

Does the RTPENGINE distinguish the ip address? why it was not kernalized in case 2?

Any help is appresiated.