Re: [sipcore] Eric Rescorla's Discuss on draft-ietf-sipcore-sip-push-21: (with DISCUSS and COMMENT) - the COMMENT issues

Eric Rescorla <ekr@rtfm.com> Mon, 07 January 2019 14:15 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B6506130EA8 for <sipcore@ietfa.amsl.com>; Mon, 7 Jan 2019 06:15:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.89
X-Spam-Level:
X-Spam-Status: No, score=-1.89 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, T_KAM_HTML_FONT_INVALID=0.01] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dlwSc3oW7dG8 for <sipcore@ietfa.amsl.com>; Mon, 7 Jan 2019 06:15:56 -0800 (PST)
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D4302130E99 for <sipcore@ietf.org>; Mon, 7 Jan 2019 06:15:52 -0800 (PST)
Received: by mail-lf1-x136.google.com with SMTP id y11so386222lfj.4 for <sipcore@ietf.org>; Mon, 07 Jan 2019 06:15:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ydahlqBHWFHxC15+FsJFqYOQZhLo50Hfj6Dcot9J4SU=; b=tgJQe+1WeSOteuKJvOMLZvSjH8L6lPyed9qIn2pCMKyAiPfKsVljSibww2FxT+Fwr1 KiUUswfmwdZRdwRslkjpw8I0618gC/v9kzuZRC4khBzwwdulvBJo3d2+mJFhb9qiSGHy I5RGFSUaMwGM8OyJZGWxEzhTJJPfRkF017xydRoUpSKpV9+LNQFXGCHXDi64u5d8CJDH etSgLH73dig5i/Lu0cUx4BaEMFoXwsRibVY40x8U8sn43x7/PHFDuL2JCCdFYzA5kn8a 3+xwjqQaNFXhmieg+PHUp765CMsJUBdIZ4nxv/ZgwS1kRrpPErZcNXS7SArtjIpBs3BQ Yudg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ydahlqBHWFHxC15+FsJFqYOQZhLo50Hfj6Dcot9J4SU=; b=VnDROmH0mRzvDX++OkIl8j3rYHY/bo6yZSx2iO5OQ+SsZjfjUBqs5nxkAKlwQzs3Lg mdt3/JIg02E2eUmWY72CdgzFfdHfkbpnAbQMjq9SzvHlvhW4ee4FPV2x96Qh7kVgPo2o yPTXUfOnbZK7kgQmuiH2DngD+y7gYtUxi2q4/L2735i3UNMkCBs6szwDUA5p2cn9HANt rLN94H9nNDRrJsv+214HQ7ZsBY3IH7Y9s7Ei2mvnwayPQjF8jSf86+0UcDGRdDz6Ozs+ qusQZlvGRnJV8ahXHSfDsFxciBXmOA7znM6qztPKpT+FjWHLYSUU9WdEADfOhw7UYyjY m35A==
X-Gm-Message-State: AA+aEWYAD03+dRempqszmjDTm16YR0dZcoQXu3Y4MccVJPNRndPWfHyl 1JB/inQCTBET/Hr3ybVPxtvhiQUSZCFIBuLVChokXg==
X-Google-Smtp-Source: AFSGD/WESKqjKLe/afJKjgKBcYbp6ztwT9xudVGbqJqN5rBLGlO/cYP5hb9mSgNiGJgWSVkHlVSSBdpHGELITU22sJ0=
X-Received: by 2002:a19:a9d2:: with SMTP id s201mr29181242lfe.154.1546870550877; Mon, 07 Jan 2019 06:15:50 -0800 (PST)
MIME-Version: 1.0
References: <154681733718.17024.3190954246737206843.idtracker@ietfa.amsl.com> <HE1PR07MB31611EECBA89EF1FC46D756C93890@HE1PR07MB3161.eurprd07.prod.outlook.com>
In-Reply-To: <HE1PR07MB31611EECBA89EF1FC46D756C93890@HE1PR07MB3161.eurprd07.prod.outlook.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Mon, 07 Jan 2019 06:15:13 -0800
Message-ID: <CABcZeBM-SdQH4_92uo5-KWWG=Wnb+1u=j7u-1J3FzjjymQYJhA@mail.gmail.com>
To: Christer Holmberg <christer.holmberg@ericsson.com>
Cc: The IESG <iesg@ietf.org>, "br@brianrosen.net" <br@brianrosen.net>, "sipcore@ietf.org" <sipcore@ietf.org>, "draft-ietf-sipcore-sip-push@ietf.org" <draft-ietf-sipcore-sip-push@ietf.org>, "sipcore-chairs@ietf.org" <sipcore-chairs@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000b2ecdd057ededd78"
Archived-At: <https://mailarchive.ietf.org/arch/msg/sipcore/ZlGj4xndDOcsmPeEBsLCmUWplMI>
Subject: Re: [sipcore] Eric Rescorla's Discuss on draft-ietf-sipcore-sip-push-21: (with DISCUSS and COMMENT) - the COMMENT issues
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sipcore/>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Jan 2019 14:15:58 -0000

On Mon, Jan 7, 2019 at 5:09 AM Christer Holmberg <
christer.holmberg@ericsson.com> wrote:

>
> S 4.1.
> >>      capability indicator, the UA SHOULD only send a re-registration
> >>      REGISTER request when it receives a push notification (even if the
> UA
> >>      is able to use a non-push mechanism for sending re-registration
> >>      REGISTER requests), or when there are circumstances (e.g., if the
> UA
> >>      is assigned new contact parameters due to a network configuration
> >>      change) that require an immediate REGISTER request to be sent.
> >
> >This text doesn't seem correct. If the initial response doesn't
> >contain "sip.pns" then you probably would still want to send regular
> >REGISTERs
>
> The text is about "sip.pnsreq".
>

Yes, but it's not phrased as being conditional on that other condition (see
previous comments about writing style).

---
>
> S 4.1.
> >>      change) that require an immediate REGISTER request to be sent.
> >>
> >>      NOTE: If the UA uses a non-push mechanism to wake and send a
> binding
> >>      refresh REGISTER request, such REGISTER request will update the
> >>      binding expiration timer, and the proxy does not need to request a
> >>      push notification towards the UA in order to wake the UA.  The
> proxy
> >
> >This doesn't seem obviously correct. Why is this so?
>
> As the UA will use other (non-push) mechanisms to wake up for updating the
> binding expiration timer, there is no need to use push notifications for
> that.
>

All right.


> ---
>
> S 4.1.
> >>      REGISTER request.
> >>
> >>      If the UA no longer wants to receive push notifications (requested
> by
> >>      the proxy), the UA MUST send a binding-refresh REGISTER request
> >>      without including the SIP URI parameters described above, or the UA
> >>      MUST remove the registration.
> >
> >This seems pretty hard to conform with, given that mobile applications
> >are often just shut down with no warning.
>
> On shut down, I believe mobile applications are typically moved in to a
> state where they are still able to perform some actions.
>

It's not reliable. Sometimes you get that, sometimes you don't.


Anyway, the text applies to situations where the UA is able to perform
> actions.
>
> So, perhaps clarifying that with:
>
> "the UA MUST (unless it is no longer able to perform SIP procedures, e.g.,
> due to a forced shutdown) send a"
>

This doesn't seem much like a MUST.

---
>
> S 4.1.
> >>      document.
> >>
> >>      For privacy and security reasons, the UA MUST NOT include the SIP
> URI
> >>      parameters defined in this document in non-REGISTER request, to
> >>      prevent the PNS information associated with the UA from reaching
> the
> >>      remote peer.  For example, the UA MUST NOT include the SIP URI
> >
> >For non-SIP experts, why is this not an issue with REGISTER?
>
> The REGISTER will only reach your registrar, it will not be forwarded to
> the remote peer.
>

Please say so.


>
> S 5.2.
> >>      If the UA has indicated, using the 'sip.pnsreg' media feature tag,
> >>      that it is able to wake using a non-push mechanism for sending
> >>      binding-refresh REGISTER requests, if the proxy does not receive a
> >>      REGISTER request prior to 120 seconds before the registration
> >>      expires, the proxy MAY request a push notification towards the UA,
> to
> >>      trigger the UA to send a REGISTER request.
> >
> >This paragraph needs to be rewritten in some way that is not so
> >conditional dense.
>
> There are only two conditions, aren't there?
>

No.

When a proxy receives:
   If the proxy considers
   If the proxy considers
   Similarly, when the proxy receives [not sure about the indent on this
one...]



> ---
>
> S 5.2.
> >>      UA expects to receive push notifications from the network.  A proxy
> >>      will not request push notifications towards a UA that has not
> >>      provided a pn-prid SIP URI parameter.
> >>
> >>      If the proxy receives information that a registration has expired,
> >>      the proxy MUST NOT request further push notifications towards the
> UA.
> >
> > Again, how would it receive such information?
>
> E.g., using RFC 3680 - or some other mechanism. As different networks and
> architectures might use different mechanisms for updating its nodes about
> the registration status, we don't want to mandate a specific mechanism.
>

You need to say something here about how that's out of scope. Otherwise,
people just go hunting through the text for it.



> S 5.3.1.
> >>      registrar too short, the proxy MUST NOT insert a Feature-Caps
> header
> >>      field with a 'sip.pns' feature-capability indicator in the
> response,
> >>      and the proxy MUST NOT request push notifications associated with
> the
> >>      registration.  A registration expiration interval MUST be
> considered
> >>      too short if the interval is smaller than the time prior to
> >>      expiration that the proxy would request a push notification.  The
> >
> >What does this text mean?
>
> If the registration interval is considered too short, a proxy will not
> enable SIP push.
>
> For example, assume a proxy would send a push notification 30 seconds
> prior to registration expirations.
>
> Now, if the registration expiration interval is only 20 seconds, it would
> not work.
>
> I don't think this will ever happen in real life, but people wanted this
> text.
>

OK, but it should be rewritten so it's clear.


> ---
>
> S 5.3.2.
> >>
> >>      If the proxy has knowledge that the UA is awake, and that the UA is
> >>      able to receive the SIP request without first sending a REGISTER
> >>      request, the proxy MAY choose to not request a push notification
> >>      towards the UA (and wait for the associated REGISTER request and
> 2xx
> >>      response) before it tries to forward the SIP request towards the
> UA.
> >
> >Why not race these?
>
> One could do that, but I don't think it should be mandated.
>

The current text prohibits racing if you *don't* know that the UA is awake.


>
> S 6.1.1.
> >>      triggered by incoming mid-dialog requests is done based on local
> >>      policy.  Such policy might be based on the type of SIP dialog, the
> >>      type of media (if any) negotiated for the dialog [RFC3264], etc.
> >>
> >>      NOTE: As the 'pn-purr' SIP URI parameter only applies to a give
> >>      dialog, the UA needs to include a 'pn-purr' parameter in the
> Contact
> >
> > "to a given" dialog?
>
> Correct. Will fix.
>
> ---
>
> S 6.2.1.
> >>   6.2.1.  REGISTER
> >>
> >>      When the proxy receives an initial REGISTER request for a
> >>      registration from the UA, if the proxy supports requesting push
> >>      notifications, triggered by mid-dialog requests, towards the
> >>      registered UA, the proxy MUST store the information (the pn- SIP
> URI
> >
> > Too many commas here to make sense of this requirement
>
> I'll see what I can do to fix that.
>
> ---
>
> S 10.
> >>      by two values, separated by a period (.): Team ID and Topic.  The
> >>      Team ID is provided by Apple and is unique to a development team.
> >>      The Topic consists of the Bundle ID, which uniquelly identifies an
> >>      appliciation, and a service value that identifies a service
> >>      associated with the application, separated by a period (.).  For
> VoIP
> >>      applications the service value is "voip".
> >
> > What is the syntax of these params?
>
> The details can be found in the PNS specific documentation.
>

These do not appear to be normative references. I at least need to know
enough about the structure to know what to expect.

-Ekr


> ---
>
> S 11.
> >>      The value of the pn-provider URI parameter is "fcm".
> >>
> >>      The value of the pn-param URI parameter is the Project ID.
> >>
> >>      The value of the pn-prid URI parameter is the Registration token,
> >>      which is generated by the FCM SDK for each client app instance.
> >
> > Again, what is the syntax of this?
>
> Same as above.
>
> Regards,
>
> Christer
>
>
>
>
>