Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kamailio in local network behind NAT #3173

Closed
lehanich opened this issue Jul 1, 2022 · 1 comment
Closed

Kamailio in local network behind NAT #3173

lehanich opened this issue Jul 1, 2022 · 1 comment

Comments

@lehanich
Copy link

lehanich commented Jul 1, 2022

Hello,

I have kamailio in local network behind NAT. Kamailio have one interface eth1 with ip 10.130.0.23

UserAgent - (internet) - (178.0.0.169)router_NAT - (LAN) - (10.130.0.23)kamailio+rtpproxy - pbx

I made two listeners:
listen=udp:10.130.0.23:5070 #to pbx in lan (I don`t want to put via header with 178.0.0.169)
listen=udp:10.130.0.23:5060 advertise 178.0.0.169:5060 #to internet (UserAgent need to get via header with 178.0.0.169 )

mhomed = 1 # I think It not useful for my case

UserAgent send Register and Invite to 178.0.0.169:5060, Kamailio get it on udp:10.130.0.23:5060

Kamailio Relay it to udp:10.130.0.23:5070

My pbx get requests from udp:10.130.0.23:5070 with via header 10.130.0.23

Responses to UserAgent go from udp:10.130.0.23:5060 with via 178.0.0.169

In RELAY block:
if ($Ru == «udp:10.130.0.23:5070») {
#set_send_socket(«udp:10.130.0.23:5060»);
$fs = «udp:10.130.0.23:5060»;
#force_send_socket(«udp:10.130.0.23:5060»);
} else {
#set_send_socket(«udp:10.130.0.23:5070»);
$fs = «udp:10.130.0.23:5070»;
}
#$fs = «udp:10.130.0.23:5070»;
if (!t_relay()) {
sl_reply_error();
}

route[REGISTRAR] {
...
if ($rd == "mydomain.ru" || $rd == "mydomain2.ru") {

      set_send_socket("udp:[10.130.0.23:5070](http://10.130.0.23:5070/)");
      add_path();
      route(DISPATCH);
     }

...
}

It works for requests (INVITE and REGISTER) from UserAgent to PBX thought kamailio. But INVITE from my pbx to UserAgent go out only through udp:10.130.0.23:5070, Kamailio realy it to internet from udp:10.130.0.23:5070

I get error in syslog: (pv [pv_branch.c:62]: pv_get_branchx_helper(): error accessing branch [0])

I tried set_send_socket(«udp:10.130.0.23:5070»); and $fs = «udp:10.130.0.23:5070»;

Why I can`t relay outgoing requests to internet through another socket?

Thank you.

@linuxmaniac
Copy link
Member

Please address this to our "sr-users" list, this is for tracking bugs and feature requests in the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants