Hi Alex, maybe you should start with the easier scenario first: what happens if the proxy does not insert a record-route header. In this case both UAs will send in-dialog request directly to each other. And they learned the target address of each other from the Contact headers. These haders is mandatory for requests and replies which establish a dialog.
So even if the proxy does record-route the Contact headers of the UAs will ensure that further in-dialog requests will be delivered to the right UA. Explaining the relation between the Route and the Contact header is a little bit long. Please refer to the Record-Route and Route sections of RFC3261 for the details. Regards Nils Ohlmeier On Wednesday 02 June 2004 21:50, Alex Bligh wrote: > I have confused myself and am hoping someone can unconfuse me. > > Take a situation like this > > /--------- B > A ------- P > \--------- C > > A is a UA initiating a call to a URI through P, which is a transaction > stateful proxy. P forks the call (let's say sequentially to B then C). P > also adds "Record-Route". > > Let us presume B is unavailable/busy/whatever so P then tries C, which > OK's, and a dialogue is initiated between A and C, with the signalling > still going via P due to the record route. > > How is this meant to work where P is transaction stateful but not dialog > stateful? Specifically, what header fields supplied by A is P meant to > process to ensure that future in-dialog transactions (such as BYE) are > routed to C in the first instance and not B? Or, moreover, assuming the > identification of C as a target was from ephemeral data (perhaps B has > changed his call divert settings whilst the call is still in progress) how > is P then meant to route dialog messages to C at all? > > Should it be recording the information as a parameter in the record-route > header (as per 4 of 16.6 of RFC3261 to store state effectively in the > dialog message rather than on the proxy)? Should it rely on B or C > inserting a Contact: header and use that if there are no further Route: > headers? Have I missed the point entirely (I expect so)? What's the > easiest / recommended way to do this? > > Alex > _______________________________________________ > Sip-implementors mailing list > [EMAIL PROTECTED] > http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors _______________________________________________ Sip-implementors mailing list [EMAIL PROTECTED] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
