our kamailo has 2 IPs, a public (87.x.x.x) and a private (192.168.1.1). It is 
listening on all of them. For all calls it listens on the public IP but for 
some calls I need to forward the incoming INVITE to a server in the private 
network so I do a " force_send_socket(privateip:port)"  before the route that 
forwards the INVITE to the server in the private network and that works.

But then when the server in the private network replies with 302 I have to 
contact the servers inside the Contact header using the Public IP now so I do 
this hoping that it will switch back to the public IP:

        if (t_check_status("302")) {
                force_send_socket(PUBLIC_IP:5060);
                get_redirects("*");
                t_relay();
        }

But it stays in the private, so the INVITEs to the servers inside the Contact 
header are sent from the Private IP and they are blocked.

This would be the flow:
customer INVITE  -> kamailio(publicIP)
kamailio (publicIP) 100 trying -> customer

kamailio(privateIP) INVITE -> Server(privateIP)
Server(privateIP) 302 redirect -> kamailio(privateIP)
kamailio(privateIP) ACK -> Server(privateIP)

after I would like this to happen

kamailio(publicIP) INVITE -> Server1(publicIP)
but instead this happens:

kamailio(privateIP) INVITE -> Server1(publicIP)

how can I switch back to the public IP to continue with this call flow?
thank you

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

Reply via email to