[OpenSIPS-Users] ACK and NAT problem
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Thu Nov 25 22:59:34 CET 2010
Hi Nawfel,
The problem is that opensips, as running on a private address, will
advertise in Route hdr that private IP (that will be useless when GW
tries to route the ACK).
So, currently, what is the way your opensips is reachable from outside ?
Best regards,
Bogdan
Nawfel Oujdi wrote:
> Hi!!
>
> I load balancing between 2 asterisk,the load_balancer it s done
> correctly but the calls hangs up after 10 second approximately. My
> setup is (just with 1 asterisk):
>
> Cisco GW ----(NAT)----> Opensips --------> Asterisk
>
> My problem is that opensips never receive the ACK from Cisco GW even
> if this last one sent it.
>
> CISCO logs:
> ACK sip:911126667@*public ip of asterisk* :5060 SIP/2.0
> Route: <sip:*internal ip of
> opensips*;lr=on;ftag=F40B44FC-18A6;did=1cd.369d0f26>
>
> I think cisco reply ACK to Asterisk through the internal ip of
> opensips cause opensips did not provide Cisco with his public IP (NAT).
>
> Can somebody help me with this??
>
> I heard about fix_nated_contact() but i don't know how and where
> in my script¿Somebody send me examples ?
>
>
> Thank you very much!!
>
> my opensips.cfg:
> route{
>
> if (!mf_process_maxfwd_header("10")) {
> sl_send_reply("483","looping");
> exit;
> }
> if ($rU==NULL) {
> # request with no Username in RURI
> sl_send_reply("484","Address Incomplete");
> exit;
> }
> if (!has_totag()) {
> # initial request
> record_route();
> } else {
> # sequential request -> obey Route indication
> loose_route();
> t_relay();
> exit;
> }
>
> if ( is_method("CANCEL") ) {
> if ( t_check_trans() )
> t_relay();
> exit;
> }
>
>
> # from now on we have only the initial requests
> if (!is_method("INVITE")) {
> send_reply("405","Method Not Allowed");
> exit;
> }
>
> # detect resources and do balancing
> if (method=="INVITE") {
> load_balance("1","calls");
> }
>
> # LB function returns negative if no suitable destination (for
> requested resources) is found,
> # or if all destinations are full
> if ($retcode<0) {
> sl_send_reply("500","Service full");
> exit;
> }
>
> xlog("Selected destination is: $du\n");
>
> # send it out
> if (!t_relay()) {
> sl_reply_error();
> }
> }
>
>
>
>
>
>
>
>
> ------------------------------------------------------------------------
>
> Aviso legal: Este mensaje electrónico está dirigido únicamente a la(s)
> dirección(es) indicadas anteriormente; el carácter confidencial,
> personal e intransferible del mismo está protegido legalmente.
> Cualquier revelación, uso o reenvío no autorizado, completo o en
> parte, está prohibido. Si ha recibido este mensaje por equivocación,
> notifíquelo inmediatamente a la persona que lo ha enviado y borre el
> mensaje original junto con sus ficheros anexos sin leerlo ni grabarlo,
> total o parcialmente.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
--
Bogdan-Andrei Iancu
OpenSIPS Bootcamp
15 - 19 November 2010, Edison, New Jersey, USA
www.voice-system.ro
More information about the Users
mailing list