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
--
---------------------------------------------------
Daniel Grotti
DEIS - University of Bologna
Via Venezia, 52 - 47023 Cesena (FC) - ITALY
Contacts
e-mail : daniel.grotti(a)unibo.it
Skype name : Daniel Grotti
---------------------------------------------------
Show replies by date