draft-ietf-sipcore-sip-push-23.txt   draft-ietf-sipcore-sip-push-24.txt 
SIPCORE Working Group C. Holmberg SIPCORE Working Group C. Holmberg
Internet-Draft Ericsson Internet-Draft Ericsson
Intended status: Standards Track M. Arnold Intended status: Standards Track M. Arnold
Expires: July 25, 2019 Metaswitch Networks Expires: July 26, 2019 Metaswitch Networks
January 21, 2019 January 22, 2019
Push Notification with the Session Initiation Protocol (SIP) Push Notification with the Session Initiation Protocol (SIP)
draft-ietf-sipcore-sip-push-23 draft-ietf-sipcore-sip-push-24
Abstract Abstract
This document describes how a Push Notification Service (PNS) can be This document describes how a Push Notification Service (PNS) can be
used to wake suspended Session Initiation Protocol (SIP) User Agents used to wake suspended Session Initiation Protocol (SIP) User Agents
(UAs), using push notifications, for the UA to be able to send (UAs), using push notifications, for the UA to be able to send
binding-refresh REGISTER requests and to receive receive incoming SIP binding-refresh REGISTER requests and to receive receive incoming SIP
requests. The document defines new SIP URI parameters and new requests. The document defines new SIP URI parameters and new
feature-capability indicators that can be used in SIP messages to feature-capability indicators that can be used in SIP messages to
indicate support of the mechanism defined in this document, to indicate support of the mechanism defined in this document, to
skipping to change at page 1, line 40 skipping to change at page 1, line 40
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 25, 2019. This Internet-Draft will expire on July 26, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 36 skipping to change at page 2, line 36
5.2. SIP Request Push Queue . . . . . . . . . . . . . . . . . 12 5.2. SIP Request Push Queue . . . . . . . . . . . . . . . . . 12
5.3. SIP URI Comparison Rules . . . . . . . . . . . . . . . . 12 5.3. SIP URI Comparison Rules . . . . . . . . . . . . . . . . 12
5.4. Indicate Support of Type of PNS . . . . . . . . . . . . . 13 5.4. Indicate Support of Type of PNS . . . . . . . . . . . . . 13
5.5. Trigger Periodic Binding Refresh . . . . . . . . . . . . 13 5.5. Trigger Periodic Binding Refresh . . . . . . . . . . . . 13
5.6. SIP Requests . . . . . . . . . . . . . . . . . . . . . . 14 5.6. SIP Requests . . . . . . . . . . . . . . . . . . . . . . 14
5.6.1. REGISTER . . . . . . . . . . . . . . . . . . . . . . 14 5.6.1. REGISTER . . . . . . . . . . . . . . . . . . . . . . 14
5.6.2. Initial Request for Dialog or Stand-Alone Request . . 17 5.6.2. Initial Request for Dialog or Stand-Alone Request . . 17
6. Support Of Longlived SIP Dialogs . . . . . . . . . . . . . . 20 6. Support Of Longlived SIP Dialogs . . . . . . . . . . . . . . 20
6.1. SIP UA Behavior . . . . . . . . . . . . . . . . . . . . . 22 6.1. SIP UA Behavior . . . . . . . . . . . . . . . . . . . . . 22
6.1.1. Initial Request for Dialog . . . . . . . . . . . . . 22 6.1.1. Initial Request for Dialog . . . . . . . . . . . . . 22
6.2. SIP Proxy Behavior . . . . . . . . . . . . . . . . . . . 22 6.2. SIP Proxy Behavior . . . . . . . . . . . . . . . . . . . 23
6.2.1. REGISTER . . . . . . . . . . . . . . . . . . . . . . 22 6.2.1. REGISTER . . . . . . . . . . . . . . . . . . . . . . 23
6.2.2. Initial Request for Dialog . . . . . . . . . . . . . 23 6.2.2. Initial Request for Dialog . . . . . . . . . . . . . 23
6.2.3. Mid-Dialog Request . . . . . . . . . . . . . . . . . 23 6.2.3. Mid-Dialog Request . . . . . . . . . . . . . . . . . 24
7. Support Of SIP Replaces . . . . . . . . . . . . . . . . . . . 24 7. Support Of SIP Replaces . . . . . . . . . . . . . . . . . . . 24
8. Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 8. Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.1. 555 (Push Notification Service Not Supported) Response 8.1. 555 (Push Notification Service Not Supported) Response
Code . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Code . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.2. sip.pns Feature-Capability Indicator . . . . . . . . . . 25 8.2. sip.pns Feature-Capability Indicator . . . . . . . . . . 25
8.3. sip.vapid Feature-Capability Indicator . . . . . . . . . 25 8.3. sip.vapid Feature-Capability Indicator . . . . . . . . . 26
8.4. sip.pnsreg Feature-Capability Indicator . . . . . . . . . 26 8.4. sip.pnsreg Feature-Capability Indicator . . . . . . . . . 26
8.5. sip.pnsreg Media Feature Tag . . . . . . . . . . . . . . 26 8.5. sip.pnsreg Media Feature Tag . . . . . . . . . . . . . . 27
8.6. sip.pnspurr Feature-Capability Indicator . . . . . . . . 26 8.6. sip.pnspurr Feature-Capability Indicator . . . . . . . . 27
8.7. SIP URI Parameters . . . . . . . . . . . . . . . . . . . 27 8.7. SIP URI Parameters . . . . . . . . . . . . . . . . . . . 27
9. PNS Registration Requirements . . . . . . . . . . . . . . . . 27 9. PNS Registration Requirements . . . . . . . . . . . . . . . . 28
10. pn-provider, pn-param and pn-prid URI Parameters for Apple 10. pn-provider, pn-param and pn-prid URI Parameters for Apple
Push Notification service . . . . . . . . . . . . . . . . . . 27 Push Notification service . . . . . . . . . . . . . . . . . . 28
11. pn-provider, pn-param and pn-prid URI Parameters for Google 11. pn-provider, pn-param and pn-prid URI Parameters for Google
Firebase Cloud Messaging (FCM) push notification service . . 28 Firebase Cloud Messaging (FCM) push notification service . . 29
12. pn-provider, pn-param and pn-prid URI Parameters for RFC 8030 12. pn-provider, pn-param and pn-prid URI Parameters for RFC 8030
(Generic Event Delivery Using HTTP Push) . . . . . . . . . . 29 (Generic Event Delivery Using HTTP Push) . . . . . . . . . . 29
13. Security Considerations . . . . . . . . . . . . . . . . . . . 29 13. Security Considerations . . . . . . . . . . . . . . . . . . . 30
14. IANA considerations . . . . . . . . . . . . . . . . . . . . . 30 14. IANA considerations . . . . . . . . . . . . . . . . . . . . . 31
14.1. SIP URI Parameters . . . . . . . . . . . . . . . . . . . 30 14.1. SIP URI Parameters . . . . . . . . . . . . . . . . . . . 31
14.1.1. pn-provider . . . . . . . . . . . . . . . . . . . . 30 14.1.1. pn-provider . . . . . . . . . . . . . . . . . . . . 31
14.1.2. pn-param . . . . . . . . . . . . . . . . . . . . . . 31 14.1.2. pn-param . . . . . . . . . . . . . . . . . . . . . . 31
14.1.3. pn-prid . . . . . . . . . . . . . . . . . . . . . . 31 14.1.3. pn-prid . . . . . . . . . . . . . . . . . . . . . . 32
14.1.4. pn-purr . . . . . . . . . . . . . . . . . . . . . . 31 14.1.4. pn-purr . . . . . . . . . . . . . . . . . . . . . . 32
14.2. SIP Response Codes . . . . . . . . . . . . . . . . . . . 31 14.2. SIP Response Codes . . . . . . . . . . . . . . . . . . . 32
14.2.1. 555 (Push Notification Service Not Supported) . . . 31 14.2.1. 555 (Push Notification Service Not Supported) . . . 32
14.3. SIP Global Feature-Capability Indicator . . . . . . . . 32 14.3. SIP Global Feature-Capability Indicator . . . . . . . . 32
14.3.1. sip.pns . . . . . . . . . . . . . . . . . . . . . . 32 14.3.1. sip.pns . . . . . . . . . . . . . . . . . . . . . . 32
14.3.2. sip.vapid . . . . . . . . . . . . . . . . . . . . . 32 14.3.2. sip.vapid . . . . . . . . . . . . . . . . . . . . . 33
14.3.3. sip.pnsreg . . . . . . . . . . . . . . . . . . . . . 33 14.3.3. sip.pnsreg . . . . . . . . . . . . . . . . . . . . . 33
14.3.4. sip.pnspurr . . . . . . . . . . . . . . . . . . . . 33 14.3.4. sip.pnspurr . . . . . . . . . . . . . . . . . . . . 34
14.4. SIP Media Feature Tag . . . . . . . . . . . . . . . . . 34 14.4. SIP Media Feature Tag . . . . . . . . . . . . . . . . . 35
14.4.1. sip.pnsreg . . . . . . . . . . . . . . . . . . . . . 34 14.4.1. sip.pnsreg . . . . . . . . . . . . . . . . . . . . . 35
14.5. PNS Sub-registry Establishment . . . . . . . . . . . . . 35 14.5. PNS Sub-registry Establishment . . . . . . . . . . . . . 35
15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 36 15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 36
16. References . . . . . . . . . . . . . . . . . . . . . . . . . 36 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 36
16.1. Normative References . . . . . . . . . . . . . . . . . . 36 16.1. Normative References . . . . . . . . . . . . . . . . . . 36
16.2. Informative References . . . . . . . . . . . . . . . . . 37 16.2. Informative References . . . . . . . . . . . . . . . . . 38
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 38 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39
1. Introduction 1. Introduction
In order to save resources (e.g., battery life) some devices In order to save resources (e.g., battery life) some devices
(especially mobile devices) and operating systems will suspend (especially mobile devices) and operating systems will suspend
applications when not used. In some cases, internal timers cannot be applications when not used. In some cases, internal timers cannot be
used to wake such applications, nor will incoming network traffic used to wake such applications, nor will incoming network traffic
wake the application. Instead, one way to wake the application is by wake the application. Instead, one way to wake the application is by
using a Push Notification Service (PNS). A PNS is a service from using a Push Notification Service (PNS). A PNS is a service from
where a user application can receive messages, referred to as push where a user application can receive messages, referred to as push
skipping to change at page 12, line 49 skipping to change at page 12, line 49
procedures are described in the sections below. procedures are described in the sections below.
Exactly how the SIP Request Push Queue is implemented is outside the Exactly how the SIP Request Push Queue is implemented is outside the
scope of this document. One option is to use the PRID as a key to scope of this document. One option is to use the PRID as a key to
search for SIP requests in the queue. Note that mid-dialog requests search for SIP requests in the queue. Note that mid-dialog requests
(Section 6) do not carry the PRID in the SIP request itself. (Section 6) do not carry the PRID in the SIP request itself.
5.3. SIP URI Comparison Rules 5.3. SIP URI Comparison Rules
When a SIP proxy compares two SIP URIs, the proxy uses the URI When a SIP proxy compares two SIP URIs, the proxy uses the URI
comparison rules defined in [RFC3261], with the following addition: comparison rules defined in [RFC3261], meaning that in order for a
the pn-prid, pn-provider and pn-param SIP URI parameters MUST also comparison to be successful the pn-prid, pn-provider and pn-param SIP
match in order for the comparison to be successful. URI parameters must also match.
If only the pn- SIP URI parameters listed above match, but other If only the pn- SIP URI parameters listed above match, but other
parts of the compared URIs do not match, a proxy MAY still consider parts of the compared URIs do not match, a proxy MAY still consider
the comparison successful, based on local policy. This can occur in the comparison successful, based on local policy. This can occur in
a race condition, if a UA modified some parts of the Contact URI in a race condition when the proxy compares the Contact header field URI
the most recent REGISTER request, but the Request-URI of a SIP of a 2xx response to a REGISTER request with a Request-URI of a SIP
request addressed towards the UA still contains the old parts. request in the SIP Request Push Queue (Section 5.2), if the UA that
sent the associated REGISTER request modified some parts of the
Contact header field URI in the REGISTER request, but the Request-URI
of the SIP request in the SIP Request Push Queue still contains the
old parts.
5.4. Indicate Support of Type of PNS 5.4. Indicate Support of Type of PNS
A SIP proxy uses feature-capability indicators [RFC6809] to indicate A SIP proxy uses feature-capability indicators [RFC6809] to indicate
support of types of PNSs, and additional features (e.g., VAPID) support of types of PNSs, and additional features (e.g., VAPID)
associated associated with a type of PNS. A proxy MUST use a associated associated with a type of PNS. A proxy MUST use a
separate Feature-Cap header fields for each supported type of PNS. A separate Feature-Cap header fields for each supported type of PNS. A
feature-capability indicator that indicates support of an additional feature-capability indicator that indicates support of an additional
feature associated with a given type of PNS MUST be inserted in the feature associated with a given type of PNS MUST be inserted in the
same Feature-Caps header field that is used to indicate support of same Feature-Caps header field that is used to indicate support of
 End of changes. 17 change blocks. 
33 lines changed or deleted 37 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/