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:911126...@*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
[email protected]
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


_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to