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

From: Hoil Choi <[email-masked]>
Date: Fri, 28 May 2021 07:08:32 +0000

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

---

From: Brian Rosen <[email-masked]>
Date: Fri, 28 May 2021 11:57:10 -0400

You should send this message to the sip-implementors list: [email-masked]
https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors <https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors>

> On May 28, 2021, at 3:08 AM, Hoil Choi <[email-masked]> wrote:
> 
> Hello, 
> 
> _______________________________________________
> sipcore mailing list
> [email-masked] <mailto:[email-masked]>
> https://www.ietf.org/mailman/listinfo/sipcore <https://www.ietf.org/mailman/listinfo/sipcore>

---

From: Ranjit Avasarala <[email-masked]>
Date: Fri, 28 May 2021 14:38:09 -0500

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]> wrote:

> 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.
>
> Statement seems to convey that UAS must place a Require header with value
> 'timer' when UAC requests itself to be the refresher.
>
> 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.
>
> [email-masked]
> https://www.ietf.org/mailman/listinfo/sipcore
>

---

From: Ranjit Avasarala <[email-masked]>
Date: Fri, 28 May 2021 15:40:33 -0500

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]> 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
> <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>
>
>

---

From: Hoil Choi <[email-masked]>
Date: Fri, 28 May 2021 20:18:36 +0000

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,

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>