Though I notice that RFC 6665 4.4.1 also says: unless the NOTIFY request contains a "Subscription-State" of "terminated."
And in our case the subscription state is "terminated". The dialog is then over, so I guess that the other RFCs then apply. On Thu, 25 Jul 2019 at 21:43, David Cunningham <dcunning...@voisonics.com> wrote: > > 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 -- 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