You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I enabled mhomed=1 as well as ip_free_bind=1, but kamailio does not recognize that there is internal and external traffic.
For example I also enabled modparam("rr", "enable_double_rr", 1), but the 2 Record-Routes both have the external IP.
In addition fix_nated_contact() and fix_nated_sdp don't work because they think all traffic is coming from the external IP.
Troubleshooting
I tried a lot of things.
Reproduction
Set up a server with keepalived and a virtual IP and use any standard NAT config and it won't work.
Debugging Data
(paste your debugging data here)
Log Messages
(paste your log messages here)
SIP Traffic
(paste your sip traffic here)
Possible Solutions
I thought that ip_free_bind=1 would fix this issue, but it does not seem to have any effect.
Additional Information
Kamailio Version - output of kamailio -v
(paste your output here)
Operating System:
Debian 10
4.19.0-18-amd64 API for ruby #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64 GNU/Linux
(paste your output here)
The text was updated successfully, but these errors were encountered:
The mhomed tries to query the IP routing table from OS to see what's the network interface/ip that has a route to target. If it happens that the virtual IP has a route to the target, no matter it is internal or external, then it is used.
Moreover, as I observed in some cases the virtual IP, if it is like a second IP associated to the same network interface/card, is not properly reported and the target ip of incoming traffic, again, it is more from OS point of view.
You have to use force send socket to work around it, or if you find a better solution to push in the c code, just make a pull request. I am closing this one, it is more about using kamailio with current features, if you want to discuss further, use the sr-users@lists.kamailio.org mailing lists, maybe users have further hints and tell OS config options that can help, from developer point of view, receive/send over UDP is done using underlying OS API.
Ok my idea for a solution to this (and I don't know anything about kamailio internals) is to allow the internal and external IPs/interfaces be specified in the config so that mhomed can work with virtual IPs, like asterisk's sip.conf localnet (https://www.voip-info.org/asterisk-sip-localnet/).
Or it could be something as simple as an additional modifier to listen, maybe something like direction [internal|external] or [private|public]?
listen=udp:MY_PRIVATE_IP:5060 advertise MY_PUBLIC_IP:5060 direction private
listen=udp:MY_PUBLIC_IP:5060 direction public
If something like that is possible where do I suggest it?
Description
I enabled mhomed=1 as well as ip_free_bind=1, but kamailio does not recognize that there is internal and external traffic.
For example I also enabled modparam("rr", "enable_double_rr", 1), but the 2 Record-Routes both have the external IP.
In addition fix_nated_contact() and fix_nated_sdp don't work because they think all traffic is coming from the external IP.
Troubleshooting
I tried a lot of things.
Reproduction
Set up a server with keepalived and a virtual IP and use any standard NAT config and it won't work.
Debugging Data
Log Messages
SIP Traffic
Possible Solutions
I thought that ip_free_bind=1 would fix this issue, but it does not seem to have any effect.
Additional Information
kamailio -v
Debian 10
4.19.0-18-amd64 API for ruby #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64 GNU/Linux
The text was updated successfully, but these errors were encountered: