inline... 2006/9/28, Mark Kent mark@noc.mainstreet.net:
Thanks, this is exactly the kind of answer I need...
Because OPENSER-ONE is not a middle-man, is the proxy responsible for the AoR present in the Route|Req-URI and therefore it must not relay it but recognize it as a request targeted to one of its users.
It must process Route Header And after that check the Req URI and send the BYE to the right user, probably using lookup and related...
OK, but this Route Header processing you are talking about is done inside openser itself, and not driven by my openser.cfg, isn't it?
This routing is "exactly" what loose_route does...that's why you have if(loose_route){} as one of the first checks of your config file, to process in-dialog requests (~those having Route: headers). If the requests goes beyond the loose_route check, it means that there are no more Route headers (and therefore the in-dialog request is suposed to have reached the end-point) and then you have to check the Req-URI to forward the request to the right destination.
I know, I know, someone knowledgeable on this list likes to post something like "openser doesn't do anything without you telling it to do it" but that's not really 100% true, the tm module does do some things for you... doesn't it?
It does RFC 3261 (+RFC 3263) routing....
So, are you basically saying that my BYE handler is going to be about as complex as my INVITE and/or REGISTER handlers? And then the same for ACK?
Not at all!!! If you have record-routed the first INVITE then further messages will be processed by the loose_route...
I don't understand this:
It shouldn't be that way because the BYE should contain the Contact:
Are you saying that the BYE's I'm getting are flawed for some reason as they do not contain any Contact:
The entity responsible for the BYE req-URI is the UA that closed the session. It's the one that must place the Contact of the INVITE in the Req-URI of the following in-dialog requests.
BTW, sort of a separate but related question: when would I get a BYE or ACK with loose_route() true, and when would I get one with loose_route() false?
see above...
Thanks, -mark