Thank you for your suggestions Diptesh, Actually adding modparam("nathelper", "received_avp", "$avp(s:rcv)") & modparam("registrar", "received_avp", "$avp(s:rcv)") did the trick.
On Thu, Mar 5, 2020 at 7:25 PM Dipteshkumar Patel <diptesh.pa...@ecosmob.com> wrote: > Hello Jehan, > > OpenSIPS handle NAT different way for INVITE and REGISTER packets. If we > use fix_nated_contact(), it will get the actual source ip from network and > create a lump for that and replace the headers(like Contact, Received in > Via and c parameter in SDP packet) just before sent out or relay the packet. > > In your case, You need to manage the REGISTER and we are using OpenSIPS as > a Registrar so we are not relay the packet so fix_nated_contact() will not > help you. and your location table will have the private ip not public. So > Let me guide how NAT can be managed in Registration. > > There are three modules are responsible for the registration with NAT > handling. > 1. registrar module > 2. usrloc module > 3. nathelper module > > nathelper module can check the packet source is behind nat or nat and get > the public ip from source ip. > > We need to define a module parameter for netheper module with an > avp variable so the module will store the received IP in that avp. and > similar avp should be in registrar module so registrar module can read the > avp and store it into location as received parameter. > > modparam("nathelper", "received_avp", "$avp(received)") > > modparam("registrar", "received_avp", "$avp(received)") > > > Refer the following snippet. > > /*Other registrar Parameters*/ > modparam("registrar", "received_avp", "$avp(received)") > > /*Other nethelper Parameters*/ > modparam("nathelper", "received_avp", "$avp(received)") #keep in mind that > this avp should be same in registrar module. > > /*Other usrloc Parameters*/ > modparam("usrloc", "nat_bflag", "NAT_FLAG") > > route(NAT_MANAGE); > ------- > /*Some Authentication Stuff*/ > ------- > if(!save("location")) { > sl_reply_error(); > } > > route[NAT_MANAGE] { > if(nat_uac_test("19")){ > xlog("L_INFO","--- [NAT_MANAGE] UAC IS BEHIND NAT ---"); > if(is_method("REGISTER")){ > fix_nated_register(); > setbflag(NAT_FLAG); > } else { > fix_nated_contact(); > setflag(NAT_FLAG); > if (has_body("application/sdp")){ > fix_nated_sdp("3"); > } > } > } > } > > Output of opensipsctl ul show > ----------------------------------------------- > > AOR:: 1...@world.provider.in > Contact:: sip:100@[ACTUAL CONTACT IP]:5060 Q= > ContactID:: 2522655082190201667 > Expires:: 2219 > Callid:: 18480129104911-28121824031899@192.168.30.238 > Cseq:: 6 > User-agent:: Phone Ver2.2 > Received:: sip:[RECEIVED IP]:5060 /*This IP will be used as > request domain on relay the packet*/ > State:: CS_SYNC > Flags:: 0 > Cflags:: SIPPING_RTO SIPPING_ENABLE NAT_FLAG > Socket:: udp:[OPENSIPS LISTEN SOCKET]:5070 > Methods:: 7551 > > I hope this will solve your problem. > > Thanks & Regards > *Diptesh Patel* > Software Developer > Ecosmob Technologies Ltd, > Ahmedabad > Mo:*+919898962659* > > > On Thu, Mar 5, 2020 at 4:35 AM Jehanzaib Younis <jehanzaib.ki...@gmail.com> > wrote: > >> Thank you for your email Callum, >> I can not see the public IP in the command line that is strange. but >> OPTION is working fine. i can see 200 OK in the OPTION. >> I have already tried what you have suggested i.e fixed_nated_contact on >> INVITE it is still sending to my 10.xx.xx.xx ip. >> >> Here is my URL location >> AOR:: xxxxxx >> Contact:: sip:x...@10.202.128.xx:5060;transport=udp Q= >> Expires:: 2914 >> Callid:: n883832msp1lm0nl3cmjks88jkpin...@10.202.128.xx >> Cseq:: 12 >> User-agent:: HUAWEI-EchoLife HG8240H/V3R013C10S108 >> State:: CS_NEW >> Flags:: 0 >> Cflags:: 3 >> Socket:: udp:mysipserverip:5060 >> Methods:: 8191 >> >> here is my url and nat module parameters >> >> loadmodule "usrloc.so" >> modparam("usrloc", "nat_bflag", "NAT") >> modparam("usrloc", "db_mode", 0) >> >> loadmodule "nathelper.so" >> modparam("nathelper", "natping_interval", 120) # Ping interval 120 s >> modparam("nathelper", "ping_nated_only", 1) # Ping only clients behind >> NAT >> modparam("nathelper", "sipping_method", "OPTIONS") >> modparam("nathelper", "sipping_from", "sip:pin...@mytestdomain.com") >> modparam("nathelper", "received_avp", "$avp(i:42)") >> modparam("nathelper", "sipping_bflag", 7) >> >> loadmodule "nat_traversal.so" >> modparam("nat_traversal", "keepalive_interval", 120) >> modparam("nat_traversal", "keepalive_method", "OPTIONS") >> modparam("nat_traversal", "keepalive_from", "sip:pin...@mytestdomain.com >> ") >> >> Any suggestions please? >> >> Thank you >> >> >> On Wed, Mar 4, 2020 at 9:50 PM Callum Guy <callum....@x-on.co.uk> wrote: >> >>> Hi Jehan, >>> >>> Sounds like you want to be using fix_nated_contact() - when the INVITE >>> arrives you can try the following: >>> >>> # Check if contact is RFC1918 >>> if (nat_uac_test(1)) { >>> # Replace the contact IP with the received address from the network >>> fix_nated_contact(); >>> } >>> >>> If you look at the registrations via CLI or database (if in use) you'll >>> see that OpenSIPs is tracking both a contact and received value to deal >>> with this - that will be where your NAT pings are getting the address from. >>> >>> Hopefully that helps to get you on the correct path! >>> >>> Callum >>> >>> On Tue, 3 Mar 2020 at 21:06, Jehanzaib Younis <jehanzaib.ki...@gmail.com> >>> wrote: >>> >>>> Hi gang, >>>> >>>> I have quite strange issue. When in some cases when my customer's have >>>> 10.202.128.xx range they are behind NAT. when i see opensipsctl ul show >>>> number@sip >>>> i see contact header as Contact:: >>>> sip:num...@10.202.128.xx:5060;transport=udp >>>> Q= >>>> which means when i try to relay the invite goes to that >>>> 10.202.128.xx:5060 which is wrong. It should go to its public IP:port >>>> >>>> but weird thing is, i see the OPTION is sent to its Public IP (OPTIONS >>>> sip:180.xx.xx.xx:1502). I also see the 200 OK which is perfect. >>>> >>>> I tried to use fix_nated_register(); but it does not change anything. >>>> >>>> Can anyone help please? >>>> >>>> Thank you >>>> >>>> >>>> Regards, >>>> Jehan >>>> _______________________________________________ >>>> Users mailing list >>>> Users@lists.opensips.org >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>> >>> >>> >>> *0333 332 0000 | www.x-on.co.uk <http://www.x-on.co.uk> | ** >>> <https://www.linkedin.com/company/x-on> <https://www.facebook.com/XonTel> >>> <https://twitter.com/xonuk> * >>> >>> X-on is a trading name of Storacall Technology Ltd a limited company >>> registered in England and Wales. >>> Registered Office : Avaland House, 110 London Road, Apsley, Hemel >>> Hempstead, Herts, HP3 9SD. Company Registration No. 2578478. >>> The information in this e-mail is confidential and for use by the >>> addressee(s) only. If you are not the intended recipient, please notify >>> X-on immediately on +44(0)333 332 0000 and delete the >>> message from your computer. If you are not a named addressee you must >>> not use, disclose, disseminate, distribute, copy, print or reply to this >>> email. Views or opinions expressed by an individual >>> within this email may not necessarily reflect the views of X-on or its >>> associated companies. Although X-on routinely screens for viruses, >>> addressees should scan this email and any attachments >>> for viruses. X-on makes no representation or warranty as to the absence >>> of viruses in this email or any attachments. >>> >>> _______________________________________________ >>> Users mailing list >>> Users@lists.opensips.org >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> > >>> A cloud hosted phone system <https://vndpbx.com> >> _______________________________________________ >> Users mailing list >> Users@lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> > > *Disclaimer* > In addition to generic Disclaimer which you have agreed on our website, > any views or opinions presented in this email are solely those of the > originator and do not necessarily represent those of the Company or its > sister concerns. Any liability (in negligence, contract or otherwise) > arising from any third party taking any action, or refraining from taking > any action on the basis of any of the information contained in this email > is hereby excluded. > > *Confidentiality* > This communication (including any attachment/s) is intended only for the > use of the addressee(s) and contains information that is PRIVILEGED AND > CONFIDENTIAL. Unauthorized reading, dissemination, distribution, or copying > of this communication is prohibited. Please inform originator if you have > received it in error. > > *Caution for viruses, malware etc.* > This communication, including any attachments, may not be free of viruses, > trojans, similar or new contaminants/malware, interceptions or > interference, and may not be compatible with your systems. You shall carry > out virus/malware scanning on your own before opening any attachment to > this e-mail. The sender of this e-mail and Company including its sister > concerns shall not be liable for any damage that may incur to you as a > result of viruses, incompleteness of this message, a delay in receipt of > this message or any other computer problems. > _______________________________________________ > Users mailing list > Users@lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -- Regards, Jehanzaib
_______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users