Hello

"4.12 forward(destination)

Forward the SIP request to the given destination in stateless mode... 
If destination parameter is missing, the forward will be done based on RURI"

In your case, stateless proxy, using forward() function, forward BYE to 
destination which is located in RURI, i.e. address of the final UA.

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Samuel Muller
Sent: Wednesday, February 15, 2012 10:32 PM
To: [email protected]
Subject: [OpenSIPS-Users] BYEs are not following the VIAs and Record-Routes

Hi,

I'm a bit confused concerning record-route, vias and route headers.

In my case, I've this :
UA -> local statefull pxy 1 -> stateless pxy 2 -> statefull pxy 3 the local pxy 
is an audiocodes mp11x (to use the SAS capabilies), the stateless is OpenSips 
with dispatcher module (only for the pxy3), then the statefull pxy 3 are 
several OpenSips acting too as registrar or redirect.

Meaning of stateless in my case is to have a minimalistic edge proxy to take 
care of multiple central proxies, not the customer side, and to pass through 
NAT problems for SIP.

all is working fine (invites, ack, prack, 100, 180, 200, register, options, 
cancel, ...) but the BYEs.
when an UA calls another UA, the SIP goes through each proxy (I need full 
control).

so, in the sip messages I've up to 5 VIAs and 3 Record-Routes headers ...
or sometimes in the 200 OK 1 Record-Route composed with multiple sets of IP.

I can not use topology hiding for several reasons :/

the problem with the BYEs, is that the stateless proxy send directly to the 
final UA instead of the local proxy 1. So it's working, but not as it has to be 
...

Here is the config of the stateless proxy :

route {
...
    if (is_method("REGISTER")) {
        add_path_received();
    } else if (!is_method("ACK")) {
        record_route(";rr=pxy2");
    }
    # don't look for totag, there're never initial requests here.
    if (loose_route()) {
        forward();
        exit;
    }
    if (!ds_select_dst("1", "0")) {
         ds_mark_dst("p");
         ds_select_dst("2", "0");
    }
    forward();
    exit;
}


the full sip trace of a BYE is here : http://pastebin.com/WKv9wNU5

If someone has any idea or can explain how's the Route / Record-Route / Vias 
are working in my case ?

Thank you very much for any help ...

.Sam Muller.


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

Reply via email to