Hi all,

I think I have this all quite good now. I do have the issue though that when 
the remote party hangs up a call we aren't sent the BYE. I'm guessing this is 
something to do with either the Record-Route or a Via header.

I don't think it's the Via because the responses from our ITSP come back with 
something like this for the opensips line:
Via: SIP/2.0/UDP 
192.168.52.1;branch=z9hG4bKcd53.5599c4a7.0;received=203.31.111.19;rport=5060
indicating that they are dealing with it. And I've tried changing the Via 
header for opensips with this code but I think it is created late in the 
process as it is never triggered:
        if ( search("Via: SIP/2\.0/UDP 192\.168\.52\.1;") ) {       
                xlog("Correcting router's Via header...\n");      
                replace_all("Via: SIP/2\.0/UDP 192\.168\.52\.1;", "Via: 
SIP/2.0/UDP 203.31.111.19;")
        }

If I try to use record_route() it breaks everything as then opensips seems to 
loose track of the session and doesn't even respond to the ACKs when the 
session is created and then our ITSP hangs up 30 seconds later.

So again, any pointers greatly appreciated. And here is our config file as it 
currently stands:

debug=3
log_stderror=no
log_facility=LOG_LOCAL0

fork=yes
children=4

/* uncomment the following lines to enable debugging */
#debug=6
fork=no
log_stderror=yes

disable_tcp=yes

#disable_dns_blacklist=no
#dns_try_ipv6=yes
auto_aliases=no                                                                 
                

port=5060
listen=udp:192.168.52.1:5060


####### Modules Section ########

#set module path
mpath="/usr/lib/opensips/modules/"

loadmodule "rr.so"
loadmodule "tm.so"
loadmodule "uac.so"
loadmodule "xlog.so"
loadmodule "textops.so"


# ----------------- setting module-specific parameters ---------------          
                 

# ----- uac params -----                                                        
             
modparam("uac", "credential", "<userid>:sip.pennytel.com:<password>")
modparam("uac","from_restore_mode","none")



####### Routing Logic ########

# main request routing logic

route{
        t_on_failure("1");
        if ( is_method("INVITE") ) {
                xlog("$fU ($fn) Calling $oU\n");
                #record_route();
        }
        if ( search("Via: SIP/2\.0/UDP 192\.168\.52\.1;") ) {       
                xlog("Correcting router's Via header...\n");      
                replace_all("Via: SIP/2\.0/UDP 192\.168\.52\.1;", "Via: 
SIP/2.0/UDP 203.31.111.19;")
        }                                                                       
                    

        if ( has_body("application/sdp") ) {
                if ( search_body("a=rtpmap:. PCM.\/.*\n") ) {
                        xlog("Removing g711 codecs...\n");
                        replace_body_all("a=rtpmap:. PCM.\/.*\n", "");
                }
                if ( search_body("192\.168\.52\..*") ) {
                        xlog("Correcting RTP IP address...\n");
                        replace_body_all("192\.168\.52\..*", "203.31.111.19");
                }
        }
        
        if ( uri=~"sip:[email protected]" ) {
                rewritehost("sip.pennytel.com");
                #remove_credentials();
                remove_hf("Proxy-Authorization");
                remove_hf("User-Agent");

                uac_replace_from("Yuruga 
Nursery","sip:[email protected]");
                t_relay("udp:sip.pennytel.com:5060");
        };

        route(1);
}


route[1] {
        exit;
}

failure_route[1] {
        if (t_check_status("40[17]")) {
                xlog("Authentication requested\n");
                if (uac_auth()) {
                        xlog("Authentication successfull\n");
                        t_relay("udp:sip.pennytel.com:5060");
                }
        }
}


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

Reply via email to