Hi All, I've noticed that using X-lite (for Linux) there are some problems with BYE method. When X-lite generates BYE, it puts in the Route Header field the address known through the record-route added by proxy. As "SER - Gettin Started" shown, an address like : IP_proxy:5060;nat=yes:
" /.... .... if(method=="INVITE" && client_nat_test("7")) { record_route_preset ("proxy_ip_address :5060;nat=yes"); .... } /"
1. When we have a BYE message sended by X-lite (user A), it is like this:
"/Request-Line: BYE sip: B@proxy_ip_address : 5060 SIP/2.0 Via: SIP/2.0/UDP A_address:5061; rport;branch=xyz From: <sip: A@proxy_ip_address:5061>;tag=123 To: <sip: B@proxy_ip_address:5060>;tag=456 Contact:sip:A@A_address:5061 * Route: <sip: proxy_ip_address:5060; nat=yes; ftag=9098789; lr=on>* .... ..... .... "/
2. Now the message BYE is parsed by the Proxy, and it uses the loose_route():
/if(loose_route())/ { forward the message };
but Proxy doesn't recognizes its address and then rewrites the R-URI with the address in Route header field and sends the BYE message.....to itself! then Proxy parses the new BYE (sended by itself) with the URI :/* <sip: proxy_ip_address:5060; nat=yes; ftag=9098789; lr=on>,*/ the the answer to user A is : 404 Destination not found!
Why doesn't OpenSER, in the loose_route() function, recognize its address in Route header field? This is what should it do. And then, delete the route header field and then forward the message using R-URI.
I think there is something wrong....
Regards, Daniel