We have a Kamailio and Asterisk cluster, both machines being on a real
103.x IP address and also on a 172.x OpenVPN address.
The problem is that when Kamailo receives a call from the VPN and forwards it to the Asterisk server on it’s 103.x address, Asterisk never sees the call.
If Kamailio receives a call from the VPN and forwards the call to the Asterisk server on it’s 172.x address then it works. However, if the call isn’t from the VPN then forwarding it to the 172.x address doesn’t work. So basically the problem is going between the real network and the VPN.
The question is, how can we make this work when calls are received on either network on the Kamailio server and are forwarded to Asterisk?
Using ngrep on the Asterisk server we see that it does receive the INVITE, but Asterisk’s logging shows no sign it at all. We guess it’s a Linux networking issue rather than Asterisk’s fault, but don’t know where to fix it. We do have net.ipv4.ip_forward = 1 on both the Kamailio and Asterisk servers.
Thanks in advance for any help.
The ngrep on the Asterisk server:
U 2014/01/17 13:15:15.599557 172.x.x.x:5060 -> 103.y.y.y:5060
INVITE sip:email@example.com:5060;transport=udp SIP/2.0. Record-Route: <172.x.x.x>. Via: SIP/2.0/UDP 172.x.x.x;branch=z9hG4bK50c7.f49ceb73.0. Via: SIP/2.0/UDP 192.z.z.z:5062;rportP62;branch=z9hG4bK806710997. From: “9067271” <9067271>;tag8791249. To: <9067268>. Call-ID: firstname.lastname@example.org.
172.x.x.x is the Kamailio server’s VPN address
103.y.y.y is the Asterisk server’s real address
192.z.z.z is the calling phone’s LAN address