Subject: Re: [sipcore] RFC 4028 UAS behavior requirement of Require header

From: Paul Kyzivat <[email-masked]>
Date: Tue, 1 Jun 2021 10:46:05 -0400

Hoil,

I already replied once about this. I'll try again.

The simple answer to why the UAS should add Require:timer is that 
RFC4028 says that it must.

Arguing that 4028 could have been written differently is a futile 
exercise. That RFC was written over 16 years ago, and people have been 
implementing it since long before it became an rfc. Are you imagining 
that anyone will revise the rfc or change their implementations for your 
convenience?

	Thanks,
	Paul

On 5/28/21 4:18 PM, Hoil Choi wrote:
> Hi Ranjit, thanks for taking a look.
> 
> However, I'm more interested in case where UAS is responding to UAC's 
> request with refresher as itself (uac).  Consider this case -
> 
> UAC ---- INVITE (Session-Expires: 1800;refresher=uac, Supported: timer) 
> ----> UAS
> UAC <---- 200 OK (Session-Expires: 1800;refresher=uac) 
> --------------------- UAS
> 
> In this case, the statement in question seems to convey that UAS should 
> also add "Require: timer" in its 200 response.  Why would this be, when 
> it's clear that UAC declared itself as the refresher and that timer is 
> supported?
> 
> For reference, RFC 4028 Section 9 UAS Behavior (or page 16)
> If the refresher parameter in the Session-Expires header field in the 
> 2xx response has a value of 'uac', the UAS MUST place a Require header 
> field into the response with the value 'timer'.
> 
> Thanks,
> Hoil
> 
> ------------------------------------------------------------------------
> *From:* Ranjit Avasarala <[email-masked]>
> *Sent:* Friday, May 28, 2021 12:38 PM
> *To:* Hoil Choi <[email-masked]>; 
> [email-masked] 
> <[email-masked]>
> *Cc:* [email-masked] <[email-masked]>
> *Subject:* Re: [sipcore] RFC 4028 UAS behavior requirement of Require 
> header
> Hi Holi
> the presence of the "Require" header with value "timer" from UAS 
> indicates to UAC that it (UAC) is performing the refreshing operation. 
> but if the UAS is the refresher, then if Require header with value 
> "timer" is present in response from UAS, then UAC should send BYE if it 
> does not receive a session refresh request from UAS.
> 
> Regards
> Ranjit
> 
> 
> 
> On Fri, May 28, 2021 at 10:02 AM Hoil Choi <[email-masked] 
> <mailto:[email-masked]>> wrote:
> 
>     Hello,
> 
>     I hope this mail finds appropriate person or team for an answer to
>     my question on RFC 4028.
>     I am a SIP enthusiast and always learning a lot about it, but by no
>     means am I an expert; so please excuse my ignorance.
> 
>     I came across an interesting statement In Section 9 UAS Behavior (or
>     page 16).
> 
> 
>     If the refresher parameter in the Session-Expires header field in the
>         2xx response has a value of 'uac', the UAS MUST place a Require
>         header field into the response with the value 'timer'.
> 
> 
>     Statement seems to convey that UAS must place a Require header with
>     value 'timer' when UAC requests itself to be the refresher.
> 
>     However, this statement should only be true, if UAC did not put
>     Session-Expire with value of 'uac'.
> 
>     If UAC, in INVITE request, put Session-Expire with value of 'uac'
>     (itself), UAS should not bother putting Require header field in the
>     response.  Or to be more accurate, UAC should include 'timer' in
>     Supported header, so that UAS doesn't have to bother putting Require
>     header field.
> 
>     What is the reason behind the requirement of Require header, from
>     UAS in this case?
> 
>     Thanks!
>     Hoil Choi
>     253-273-5442
> 
>     _______________________________________________
>     sipcore mailing list
>     [email-masked] <mailto:[email-masked]>
>     https://www.ietf.org/mailman/listinfo/sipcore
>     <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fsipcore&data=04%7C01%7C%7C4f68f91aa77847f0fb6508d922102eb4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637578275155641932%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=3McfrKwjz9RwC%2FBRLtdyopgzmNmUqsAKdAXyyRvChuc%3D&reserved=0>
> 
> 
> _______________________________________________
> sipcore mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/sipcore
>

---

From: Paul Kyzivat <[email-masked]>
Date: Tue, 1 Jun 2021 10:46:18 -0400

Hoil,

	Thanks,
	Paul

---

From: Hoil Choi <[email-masked]>
Date: Tue, 1 Jun 2021 15:40:26 +0000

Thanks Ranjit.  The word "MUST" seems to throw some vendors off.  I saw at least one device that behaves this way due to the word "MUST".  Is there way to get that reviewed and edited?

Thanks,
Hoil

________________________________
From: Ranjit Avasarala <[email-masked]>
Sent: Friday, May 28, 2021 1:40 PM
To: Hoil Choi <[email-masked]>
Cc: [email-masked] <[email-masked]>; [email-masked] <[email-masked]>
Subject: Re: [sipcore] RFC 4028 UAS behavior requirement of Require header

Hi Holi

The RFC says UAS should add a Require: timer in response when UAC is the refresher to indicate to UAC that it is the refresher. But I think this is redundant as UAC anyway knows it is the refresher and does not need a reminder from UAS.

On Fri, May 28, 2021 at 3:18 PM Hoil Choi <[email-masked]<mailto:[email-masked]>> wrote:
Hi Ranjit, thanks for taking a look.

However, I'm more interested in case where UAS is responding to UAC's request with refresher as itself (uac).  Consider this case -

UAC ---- INVITE (Session-Expires: 1800;refresher=uac, Supported: timer) ----> UAS
UAC <---- 200 OK (Session-Expires: 1800;refresher=uac) --------------------- UAS

In this case, the statement in question seems to convey that UAS should also add "Require: timer" in its 200 response.  Why would this be, when it's clear that UAC declared itself as the refresher and that timer is supported?

For reference, RFC 4028 Section 9 UAS Behavior (or page 16)
If the refresher parameter in the Session-Expires header field in the 2xx response has a value of 'uac', the UAS MUST place a Require header field into the response with the value 'timer'.

Thanks,
Hoil

________________________________
From: Ranjit Avasarala <[email-masked]<mailto:[email-masked]>>
Sent: Friday, May 28, 2021 12:38 PM
To: Hoil Choi <[email-masked]<mailto:[email-masked]>>; [email-masked]<mailto:[email-masked]> <[email-masked]<mailto:[email-masked]>>
Cc: [email-masked]<mailto:[email-masked]> <[email-masked]<mailto:[email-masked]>>
Subject: Re: [sipcore] RFC 4028 UAS behavior requirement of Require header

Hi Holi
the presence of the "Require" header with value "timer" from UAS indicates to UAC that it (UAC) is performing the refreshing operation. but if the UAS is the refresher, then if Require header with value "timer" is present in response from UAS, then UAC should send BYE if it does not receive a session refresh request from UAS.

Regards
Ranjit

On Fri, May 28, 2021 at 10:02 AM Hoil Choi <[email-masked]<mailto:[email-masked]>> wrote:
Hello,

I hope this mail finds appropriate person or team for an answer to my question on RFC 4028.
I am a SIP enthusiast and always learning a lot about it, but by no means am I an expert; so please excuse my ignorance.

I came across an interesting statement In Section 9 UAS Behavior (or page 16).

Statement seems to convey that UAS must place a Require header with value 'timer' when UAC requests itself to be the refresher.

However, this statement should only be true, if UAC did not put Session-Expire with value of 'uac'.

If UAC, in INVITE request, put Session-Expire with value of 'uac' (itself), UAS should not bother putting Require header field in the response.  Or to be more accurate, UAC should include 'timer' in Supported header, so that UAS doesn't have to bother putting Require header field.

What is the reason behind the requirement of Require header, from UAS in this case?

Thanks!
Hoil Choi
253-273-5442

_______________________________________________
sipcore mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/sipcore<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fsipcore&data=04%7C01%7C%7Cba575b2a803e45222f6308d92218e64d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637578312598666332%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=ahE28snhf5%2BAf4ZnrsfMasmV4Vix7pgAfWB72esjquI%3D&reserved=0>