[SR-Users] Kamailio behind NAT

ZZ Wave zzwave at gmail.com
Wed Jun 29 17:50:01 CEST 2022


I use this with NATed Kamailio and Asterisk for "transparent" registrations:

        if (is_method("REGISTER")) {
            add_path();
        }
        if ($Ri=="LAN_IP") {
                $fs="udp:WAN_IP:5060";
        } else {
                $fs="udp:LAN_IP:5060";
        }

AFAIK FreeSwitch supports Path as well but Yate doesn't

ср, 29 июн. 2022 г. в 12:25, Алексей Якимкин <ayakimkin at gmail.com>:

> 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_with_NAT - (LAN) -
> 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");
>
>          }
>
> }
>
>
> It works for requests from UserAgent to PBX. But INVITE from my pbx to
> UserAgent goes 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?
>
>
> --
>
> Best regards,
> Alex
>
> __________________________________________________________
> Kamailio - Users Mailing List - Non Commercial Discussions
>   * sr-users at 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20220629/d6d2ffa3/attachment.htm>


More information about the sr-users mailing list