Thank you Paul, and thank you Richard. I must say RFC 6665 4.4.1 does seem to make it clear that the route set in the NOTIFY should be used, and therefore it's incorrect that the re-SUBSCRIBE sends directly to the Contact address rather than using the Record-Routes in the NOTIFY. It's very helpful to have this knowledge as a reference!
On Thu, 25 Jul 2019 at 00:01, Paul Kyzivat <pkyzi...@alum.mit.edu> wrote: > On 7/23/19 7:38 PM, David Cunningham wrote: > > Hi Paul, > > > > I'd just like to check my understanding of your reply. The first > > SUBSCRIBE is from the UAC sip:1111113...@es8.example.com > > <mailto:sip%3a1111113...@es8.example.com>, and gets a 200 OK reply from > > the UAS. It is the 200 OK that should contain the Record-Route header? > > The normal process is that as the *request* is forwarded from the UAC > through proxies and on to the UAS, each proxy along the way has the > opportunity to add itself to the Record-Route header (or add the header > if one isn't already there). When it reaches the UAS, it should then > copy the Record-Route into response - both provisional and 2xx. This > then normally flows unchanged through all the proxies back to the UAC. > > The contents of the Record-Route then become the "route set" at both the > UAC and UAS, together with the Contact URL from the other end. > > (The above it typical. In exotic cases the UAC and/or the UAS may also > add one or more entries on the R-R, and entries might be added or > changed on the R-R in response as it returns. But these are unusual.) > > > And would that then oblige the UAC to use that route on all future > > transactions, even if the UAS sends a request (in this case a notify) > > which changes it's Contact address? > > The route-set remains unchanged for the duration of the dialog, but the > Contact address of the other end can change. > > > If you happen know which part of the RFC specifies this would be be good > > to know. Thank you again for your help on this. > > This is all in 3261, but scattered around. Just search for Record-Route > and "route set". > > There are other mechanisms that might be of interest to you. Check out > the Path [RFC3327] and Service-Route [RFC3608] header fields. These > affect the Route used for *out of dialog* requests. If those requests > establish a dialog then Record-Route is still used to establish the > route set for subsequent in-dialog requests. > > Thanks, > Paul > > > On Tue, 23 Jul 2019 at 13:03, Paul Kyzivat <pkyzi...@alum.mit.edu > > <mailto:pkyzi...@alum.mit.edu>> wrote: > > > > On 7/22/19 7:09 PM, David Cunningham wrote: > > > Hi Paul, > > > > > > Thank you for the reply. Below is the full exchange, which > hopefully > > > makes things clearer. > > > > Yes it does. > > > > > Ultimately the problem is the SUBSCRIBE at the end > > > which is being sent to port 53426 - is it correct because it's > > going to > > > the Contact address in the NOTIFY, or is it incorrect because > > it's not > > > following the Record-Route? > > > > To the best of my understanding it is correct. > > > > To get the effect you seem to be going for, the proxy at > > sip:yy.yy.yy.146:5061 should add a Record-Route with its own URL to > the > > first SUBSCRIBE. Then the UA <sip:1111113...@es8.example.com > > <mailto:sip%3a1111113...@es8.example.com>> will add > > it to the reSUBSCRIBE as a Route header. > > > > Thanks, > > Paul > > > > > SUBSCRIBE sip:7...@es8.example.com:5061 > > <http://sip:7...@es8.example.com:5061> > > > <http://sip:7...@es8.example.com:5061> SIP/2.0 > > > Via: SIP/2.0/TLS xx.xx.xx.10:5061;branch=z9hG4bK1954587875 > > > Route: <sip:yy.yy.yy.146:5061;transport=tls;lr> > > > From: ES8 Test 104 <sip:1111113...@es8.example.com > > <mailto:sip%3a1111113...@es8.example.com> > > > <mailto:sip%3a1111113...@es8.example.com > > <mailto:sip%253a1111113...@es8.example.com > >>>;tag=Nf5GGb2cl6tUMcx2B18758F8644a2998 > > > To: "798" <sip:7...@es8.example.com:5061 > > <http://sip:7...@es8.example.com:5061> > > > <http://sip:7...@es8.example.com:5061>> > > > Call-ID: 1552952...@xx.xx.xx.10 > > > CSeq: 876 SUBSCRIBE > > > Contact: <sip:1111113...@xx.xx.xx.10:5061;transport=tls> > > > Supported: eventlist, 100rel > > > Proxy-Authorization: Digest username="1111113368", > > > realm="es8.example.com <http://es8.example.com> > > <http://es8.example.com>", > > > nonce="XPWf2Fz1nqyIJkgVG+Nm6jXXume5Pekp", > > uri="sip:798@192.168.3.1 <mailto:sip%3A798@192.168.3.1> > > > <mailto:sip%3A798@192.168.3.1 <mailto:sip%253A798@192.168.3.1>>", > > > response="a480f0356c0654435c742114dfe8c4da", algorithm=MD5 > > > Max-Forwards: 70 > > > User-Agent: ewb2bua/15.4.3Alpha.2019053 > > > Event: dialog > > > Expires: 300 > > > Allow: UPDATE, REFER > > > Accept: application/dialog-info+xml > > > Content-Length: 0 > > > > > > > > > SIP/2.0 200 OK > > > To: "798" <sip:7...@es8.example.com:5061 > > <http://sip:7...@es8.example.com:5061> > > > <http://sip:7...@es8.example.com:5061>>;tag=155960081226925 > > > From: ES8 Test 104 <sip:1111113...@es8.example.com > > <mailto:sip%3a1111113...@es8.example.com> > > > <mailto:sip%3a1111113...@es8.example.com > > <mailto:sip%253a1111113...@es8.example.com > >>>;tag=Nf5GGb2cl6tUMcx2B18758F8644a2998 > > > Via: SIP/2.0/TLS > > xx.xx.xx.10:5061;rport=53426;branch=z9hG4bK1954587875 > > > Call-ID: 1552952...@xx.xx.xx.10 > > > CSeq: 876 SUBSCRIBE > > > Expires: 300 > > > Contact: <sip:7...@es8.example.com:5061 > > <http://sip:7...@es8.example.com:5061> > > > <http://sip:7...@es8.example.com:5061>> > > > User-Agent: Example SIP server > > > Content-Length: 0 > > > > > > > > > NOTIFY sip:1111113...@xx.xx.xx.10:53426;transport=tls SIP/2.0 > > > Max-Forwards: 10 > > > Record-Route: <sip:yy.yy.yy.146:5061;transport=tls;r2=on;lr=on> > > > Record-Route: <sip:yy.yy.yy.146;r2=on;lr=on> > > > Via: SIP/2.0/TLS > > > > > > yy.yy.yy.146:5061;branch=z9hG4bK4b91.0cf32b66d634969dec31117b9c120464.0 > > > Via: SIP/2.0/UDP > > > > 127.0.0.1;rport=56095;received=yy.yy.yy.146;branch=z9hG4bKCkq6GHVlo4 > > > From: <sip:7...@es8.example.com:5061 > > <http://sip:7...@es8.example.com:5061> > > > <http://sip:7...@es8.example.com:5061>>;tag=155960081226925 > > > To: <sip:1111113...@es8.example.com > > <mailto:sip%3a1111113...@es8.example.com> > > > <mailto:sip%3a1111113...@es8.example.com > > <mailto:sip%253a1111113...@es8.example.com > >>>;tag=Nf5GGb2cl6tUMcx2B18758F8644a2998 > > > Contact: <sip:7...@yy.yy.yy.146:56095> > > > Call-ID: 1552952...@xx.xx.xx.10 > > > CSeq: 9017777 NOTIFY > > > User-Agent: Example presence server > > > Event: dialog > > > Subscription-State: active;expires=299 > > > Content-Type: application/dialog-info+xml > > > Content-Length: 271 > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" > version="0" > > > state="full" entity="sip:7...@es8.example.com:5061 > > <http://sip:7...@es8.example.com:5061> > > > <http://sip:7...@es8.example.com:5061>"> > > > <dialog id="1552952...@xx.xx.xx.10" direction="recipient"> > > > <state>terminated</state> > > > </dialog> > > > </dialog-info> > > > > > > > > > SIP/2.0 200 OK > > > Via: SIP/2.0/TLS > > > > > > yy.yy.yy.146:5061;branch=z9hG4bK4b91.0cf32b66d634969dec31117b9c120464.0 > > > Via: SIP/2.0/UDP > > > > 127.0.0.1;rport=56095;received=yy.yy.yy.146;branch=z9hG4bKCkq6GHVlo4 > > > Record-Route: <sip:yy.yy.yy.146:5061;transport=tls;r2=on;lr=on> > > > Record-Route: <sip:yy.yy.yy.146;r2=on;lr=on> > > > From: <sip:7...@es8.example.com:5061 > > <http://sip:7...@es8.example.com:5061> > > > <http://sip:7...@es8.example.com:5061>>;tag=155960081226925 > > > To: <sip:1111113...@es8.example.com > > <mailto:sip%3a1111113...@es8.example.com> > > > <mailto:sip%3a1111113...@es8.example.com > > <mailto:sip%253a1111113...@es8.example.com > >>>;tag=Nf5GGb2cl6tUMcx2B18758F8644a2998 > > > Call-ID: 1552952...@xx.xx.xx.10 > > > CSeq: 9017777 NOTIFY > > > Content-Length: 0 > > > > > > > > > SUBSCRIBE sip:7...@yy.yy.yy.146:56095 SIP/2.0 > > > Via: SIP/2.0/TLS xx.xx.xx.10:5061;branch=z9hG4bK1045495431 > > > From: ES8 Test 104 <sip:1111113...@es8.example.com > > <mailto:sip%3a1111113...@es8.example.com> > > > <mailto:sip%3a1111113...@es8.example.com > > <mailto:sip%253a1111113...@es8.example.com > >>>;tag=Nf5GGb2cl6tUMcx2B18758F8644a2998 > > > To: "798" <sip:7...@es8.example.com:5061 > > <http://sip:7...@es8.example.com:5061> > > > <http://sip:7...@es8.example.com:5061>>;tag=155960081226925 > > > Call-ID: 1552952...@xx.xx.xx.10 > > > CSeq: 877 SUBSCRIBE > > > Contact: <sip:1111113...@xx.xx.xx.10:5061;transport=tls> > > > Max-Forwards: 70 > > > User-Agent: ewb2bua/15.4.3Alpha.2019053 > > > Event: dialog > > > Expires: 300 > > > Content-Length: 0 > > > > > > > > > On Tue, 23 Jul 2019 at 04:54, Paul Kyzivat <pkyzi...@alum.mit.edu > > <mailto:pkyzi...@alum.mit.edu> > > > <mailto:pkyzi...@alum.mit.edu <mailto:pkyzi...@alum.mit.edu>>> > wrote: > > > > > > Inline > > > > > > On 7/21/19 6:42 PM, David Cunningham wrote: > > > > Hello, > > > > > > > > We have the following issue and are looking for some > advice on > > > the expected > > > > behaviour: > > > > > > > > 1. UAC sends SUBSCRIBE to UAS at x.x.x.x:5061, receives > > 200 OK in > > > response. > > > > 2. UAS sends NOTIFY to UAC with Record-Route x.x.x.x:5061, > Via > > > > x.x.x.x:5061, and Contact x.x.x.x:56095, receives 200 OK > > in response. > > > > 3. UAC sends SUBSCRIBE to UAS at x.x.x.x:56095, receives > > no response > > > > because port is not accessible directly from the UAC. > > > > > > > > These are all within one dialog. RFC 3261 12.2 says: > > > > > > > > Requests within a dialog MAY contain Record-Route and > > Contact > > > header > > > > fields. However, these requests do not cause the > dialog's > > > route set > > > > to be modified, although they may modify the remote > > target URI. > > > > Specifically, requests that are not target refresh > > requests > > > do not > > > > modify the dialog's remote target URI, and requests > > that are > > > target > > > > refresh requests do. > > > > > > > > The NOTIFY is a target refresh request, so presumably the > > remote > > > target URI > > > > is then considered to be x.x.x.x:56095 as specified in the > > > Contact header. > > > > > > > > But dos the Record-Route in the NOTIFY really have no > > effect on the > > > > subsequent SUBSCRIBE? Can the NOTIFY not tell the UAS to > > route via > > > > x.x.x.x:5061 instead of sending to x.x.x.x:56095 directly? > > > > > > Your example is hard to understand because of the repeated > use of > > > x.x.x.x - it isn't clear if all instances of that are > > intended to be > > > the > > > same or if each is intended to carry different values. Please > > restate > > > your problem, showing exactly what changes in the NOTIFY and > > what stays > > > the same. > > > > > > But for your basic question, the route set for a dialog is > > finalized > > > during dialog establishment. Subsequently only the addresses > > of the > > > endpoints can be changed. If you need to change the route set > > you can > > > send an INVITE/Replaces or a REFER/Replaces to establish a > > totally new > > > dialog to replace the old one. > > > > > > Thanks, > > > Paul > > > > > > > Thank you in advance! > > > > > > > > -- > > > > David Cunningham, Voisonics Limited > > > > http://voisonics.com/ > > > > USA: +1 213 221 1092 > > > > New Zealand: +64 (0)28 2558 3782 > > > > _______________________________________________ > > > > Sip-implementors mailing list > > > > Sip-implementors@lists.cs.columbia.edu > > <mailto:Sip-implementors@lists.cs.columbia.edu> > > > <mailto:Sip-implementors@lists.cs.columbia.edu > > <mailto:Sip-implementors@lists.cs.columbia.edu>> > > > > > > https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors > > > > > > > > > > _______________________________________________ > > > Sip-implementors mailing list > > > Sip-implementors@lists.cs.columbia.edu > > <mailto:Sip-implementors@lists.cs.columbia.edu> > > > <mailto:Sip-implementors@lists.cs.columbia.edu > > <mailto:Sip-implementors@lists.cs.columbia.edu>> > > > https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors > > > > > > > > > > > > -- > > > David Cunningham, Voisonics Limited > > > http://voisonics.com/ > > > USA: +1 213 221 1092 > > > New Zealand: +64 (0)28 2558 3782 > > > > > > > > -- > > David Cunningham, Voisonics Limited > > http://voisonics.com/ > > USA: +1 213 221 1092 > > New Zealand: +64 (0)28 2558 3782 > > -- David Cunningham, Voisonics Limited http://voisonics.com/ USA: +1 213 221 1092 New Zealand: +64 (0)28 2558 3782 _______________________________________________ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors