Dear List,

I am trying to achieve a scenario where I can recognize the original peer and mask it as peer from subnet 10.0.7.0/24 with kamailio. Basic IP connectivity is established with the following network configuration (Debian9):

auto lo:1
iface lo:1 inet static
        address 10.0.0.0/24

And of course I have routed 10.0.0.0/24 to servers public IP address (hereby known as x.x.x.1) in my router.

Please consider the following scenario:

- Peer1 192.168.0.1 is sending INVITE to kamailio at IP x.x.x.1
- Kamailio sends INVITE to peer2 at 172.10.0.1 from socket 10.0.0.1
- Peer2 receives the INVITE and knows that since it came from IP 10.0.0.1 it means that INVITE is originally from peer1 - IF peer2 sends INVITE to kamailio, it should be sent to peerX from socket 10.0.0.2

This works if I list both 10.0.0.1 and 10.0.0.2 with 'listen=' parameter but things get out of hand if I have multiple peers. In my tests I have noticed that 60 peers equals 60 listen parameters which equals roughly 500 kamailio processes. At some point there are just too many processes and everything melts. If I omit the listen parameter altogether, kamailio has only one socket from /24 subnet and it is 10.0.0.0.

Error message when listen parameter is omitted:
[pv_core.c:2612]: pv_set_force_sock(): no socket found to match [10.0.0.1]

My kamailio has the following configuration in request_route:

$avp(e_private) = $(sht(get_private=>$si));
$fs = $avp(e_private);

I know that the case is a bit confusing and totally something normal people won't do. If you have any questions I am happy to answer.

Best Regards,
Joonas Keskitalo


_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to