Hello Chad,

The floating IPs that you have, are they both private IPs or one
private IP and the other one a public IP?

If you have to two floating private IPs, then you need a config like this:
listen=FLOATING_UDP_PRIVATE1 advertise PUBLIC_UDP_IP
listen=FLOATING_UDP_PRIVATE2

In the config, before relaying the initial INVITE you need to detect
the direction of the call and set $fs accordingly:
if (CAL_FROM_PRIVATE_TO_PUBLIC) {
    $fs = udp:FLOATING_UDP_PRIVATE1
}
else {
    $fs = udp:FLOATING_UDP_PRIVATE2
}

If you have a floating private IPs and a floating public IP, then you
need a config like this:
listen=FLOATING_UDP_PRIVATE
listen=FLOATING_UDP_PUBLIC

There should be no need to force the socket, but if you do, there's no
harm (actually it's better and faster).

Hope this clarifies things and helps,
-ovidiu

On Sat, Jan 15, 2022 at 9:48 AM Chad <ccolu...@hotmail.com> wrote:
>
> Ovidiu,
> Thank you for your response.
>
> I have done that, in addition to the linux ip_nonlocal_bind I have also set 
> the Kamailio ip_free_bind=1 and it does not
> work.
> Here are my relevant config lines:
> listen=LISTEN_UDP_PRIVATE advertise MY_PUBLIC_IP:5060
> listen=LISTEN_UDP_PUBLIC
>
> mhomed=1
> ip_free_bind=1
>
>
> In my /etc/sysctl.conf I have (yes I applied it with sysctl -p, and I have 
> been using it for a long time and have
> rebooted as well):
> net.ipv4.ip_nonlocal_bind=1
> --
> ^C
>
>
> On 1/15/22 4:55 AM, Ovidiu Sas wrote:
> > Hello Chad,
> >
> > You can add a listen directive to your config for the virtual IPs
> > (both public and private) and then you don't need to manually modify
> > any headers or use force_send_socket().
> > You need to enable non local IP binding so kamailio can start on the
> > server that doesn't have the virtual IP:
> > echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind
> > To make the change permanent, edit your sysctl.conf file and enable it 
> > there:
> > net/ipv4/ip_nonlocal_bind = 1
> >
> > Regards
> > Ovidiu Sas
> >
> >
> > On Sat, Jan 15, 2022 at 4:16 AM Chad <ccolu...@hotmail.com> wrote:
> >>
> >> We are looking for some help (possibly a paid consultant) to help us with 
> >> our Kamailio setup.
> >> To keep this as short as possible: we use Kamailio as a NAT proxy to 
> >> bridge our external IP and our private IP asterisk
> >> servers (via dispatcher).
> >> However both the external IP and the internal IP that the Kamailio server 
> >> uses are virtual IPs created by keepalived.
> >> Because of that neither mhomed nor fix_nated_contact work, and we use 
> >> force_send_socket to direct the traffic.
> >> We run linux Debian 10 for the OS.
> >> Also we do not use a DB at all, everything is done with local config files.
> >>
> >> The problem is that when traffic goes out the Contact header has a private 
> >> IP in it, like:
> >> Contact: <sip:##########@10.10.10.###]:5060>
> >>
> >> There are 2 possible solutions to this:
> >> 1. Make changes to linux, keepalived and/or Kamailio so that Kamailio 
> >> recognize the virtual IPs so that mhomed and
> >> fix_nated_contact work as usual.
> >>
> >> 2. Create a manual header rewrite system.
> >>
> >> If solution #2:
> >> What we need to do is create a way to rewrite the contact header to the 
> >> external IP on the way out, and on the way back
> >> rewrite it back to the internal server that the call is already connected 
> >> to.
> >>
> >> Not sure if we will need to store those paths on the server or if we can 
> >> do some kind of cheat with another persistant
> >> header like P-Preferred-Identity or P-Asserted-Identity (i.e. store the 
> >> internal IP in the name field or something).
> >>
> >> If anyone out there know of a way to do this or wants to give it a try 
> >> please reach out to me.
> >>
> >> Thank you all for your time.
> >>
> >> --
> >> ^C
> >> Chad
> >>
> >> __________________________________________________________
> >> Kamailio - Users Mailing List - Non Commercial Discussions
> >>    * sr-users@lists.kamailio.org
> >> Important: keep the mailing list in the recipients, do not reply only to 
> >> the sender!
> >> Edit mailing list options or unsubscribe:
> >>    * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
> >
> >
> >
> > --
> > VoIP Embedded, Inc.
> > http://www.voipembedded.com
> >
> > __________________________________________________________
> > Kamailio - Users Mailing List - Non Commercial Discussions
> >    * sr-users@lists.kamailio.org
> > Important: keep the mailing list in the recipients, do not reply only to 
> > the sender!
> > Edit mailing list options or unsubscribe:
> >    * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



-- 
VoIP Embedded, Inc.
http://www.voipembedded.com

__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
  * sr-users@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the 
sender!
Edit mailing list options or unsubscribe:
  * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to