RFC 3842

A Message Summary and Message Waiting Indication Event Package for the Session Initiation Protocol (SIP)

πŸ“… published August 2004, from ietf

1. Conventions πŸ’…

okay so the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document mean exactly what they mean in BCP 14, RFC 2119 [3]. no cap, they're not vibes, they're rules 🫢

2. Background and Appropriateness πŸ“ž

okay so Message Waiting Indication is a classic telephone-network thing ✨ it usually shows up as an audible or visible cue that you've got messages, like a special dial tone (called message-waiting dial tone in telephone networks), a light or indicator on the phone, icons or text, or some mix of those 🌸

Message-waiting dial tone is similar to but distinct from stutter dial tone. Both are defined in GR-506 [11].

the SIP [1] base spec was only designed to handle session initiation for multimedia sessions and rendezvous πŸ¦‹ and since Message Waiting Indication is really status information that's orthogonal to a session, it wasn't clear how an IP phone acting as a SIP User Agent would get comparable functionality. the telephony crowd saw this as a shortcoming of SIP, and honestly, fair 😭

users want the useful stuff they already have on traditional analog, mobile, and PBX phones πŸ’– it's also good to offer comparable functionality in a flexible way that allows more customization and new features ✨ SIP Specific Event Notification (RFC 3265 -- SIP Events) [2] is the right tool here, because it keeps the user mobility and rendezvous features that SIP gives you 🧚

so with SIP-Specific Event Notification, a Subscriber User Agent (usually an IP phone or a SIP software User Agent) subscribes to the status of their messages πŸ’œ then a SIP User Agent working on behalf of the user's messaging system notifies the Subscriber every time the messaging account's messages change. (this Notifier could be combined with a User Agent that gives a real-time media interface to send or receive messages, or it could be a stand-alone entity πŸŽ€) the Notifier puts a message summary in the body of a NOTIFY, encoded in a new MIME type defined later in this document. a User Agent can also explicitly fetch the current status 🫢

a SIP User Agent MAY subscribe to multiple accounts, which are told apart by the Request URI ✨ and multiple SIP User Agents MAY subscribe to the same account. so many people, one inbox, iconic πŸ‘‘

before any subscriptions or notifications get sent, each interested User Agent must be made aware of its messaging notifier(s) πŸ“ this MAY be configured by hand on the interested User Agents, configured by hand on an appropriate SIP Proxy, or discovered dynamically based on requested caller preferences [4] and registered callee capabilities [5]. (for more on usage with callee capabilities, see Section 4.2 🌈)


3. Event Package Formal Definition πŸŽ€

3.1. Event Package Name

this document defines a SIP Event Package the way RFC 3265 [2] describes one ✨ the event-package token name for this package is:

"message-summary"

3.2. Event Package Parameters

this package doesn't define any event package parameters πŸ™ˆ

3.3. SUBSCRIBE Bodies

this package doesn't define any SUBSCRIBE bodies πŸ’…

3.4. Subscription Duration

subscriptions to this event package MAY range from minutes to weeks ⏳ subscriptions in hours or days are more typical and are RECOMMENDED 🌸 the default subscription duration for this event package is one hour.

3.5. NOTIFY Bodies

a simple text-based format is proposed so low-end user agents don't get an undue burden, like cheap IP phones with no display πŸ“ž even though the format is text-based, it's meant for machine consumption only πŸ€–

a future extension MAY define other NOTIFY bodies πŸ¦‹ if no "Accept" header is present in the SUBSCRIBE, the body type defined in this document MUST be assumed. no shade, that's the default πŸ’–

the format tries really hard to separate orthogonal attributes of messages ✨ messages get split by message-context-class (for example: voice-message, fax-message, pager-message, multimedia-message, text-message, and none), by message status (new and old), and by urgent and non-urgent type 🌈

the text format starts with a simple status line and can optionally include a summary line per message-context-class πŸ’œ message-context-classes are defined in [7]. for each message-context-class, the total number of new and old messages is reported in the new and old fields πŸ“

In some cases, detailed message summaries are not available. The status line lets messaging systems or messaging gateways give you the traditional boolean message waiting notification.
Messages-Waiting: yes

if the Request-URI or To header in a message-summary subscription points at a group or collection of individual messaging accounts, the notifier MUST specify which account the message-summary body is about πŸ‘‘ and the account URI MUST NOT be wrapped in angle brackets ("<" and ">") πŸ™…

Message-Account: sip:alice@example.com

in the next example there's more than boolean info for the User Agent ✨ there are two new and four old fax messages:

Fax-Message: 2/4

after the summary, the format can optionally list a summary count of urgent messages πŸ”₯ in the next example there's one new and three old voice messages. none of the new ones are urgent, but one of the old ones is. all counters have a max value of 4,294,967,295 ((2^32) - 1). notifiers MUST NOT generate a request with a larger value, and subscribers MUST treat a larger value as 2^32-1 πŸ™ˆ

Voice-Message: 1/3 (0/1)

after the summary counts, messaging systems MAY append RFC 2822 style message headers [9] that describe newly added messages πŸ’– message headers MUST NOT be included in an initial NOTIFY, because new messages could be essentially unbounded in size 😭 message headers in later notifications MUST only correspond to messages added since the previous notification for that subscription. a messaging system that includes message headers in a NOTIFY MUST provide an administrator-configurable mechanism to select which headers get sent πŸŽ€ the headers likely to be included are To, From, Date, Subject, and Message-ID. also, the formatting of these headers in this body is identical to SIP extension-headers, not the similar format defined in RFC 2822 🧚

implementations that generate large notifications are reminded to follow the message size restrictions for unreliable transports described in Section 18.1.1 of SIP [1] ⚠️

mapping local message state to new/old status and urgency is an implementation issue for the messaging system 🌸 however, the messaging notifier MUST NOT consider a message "old" just because it generated a notification, since that could stop another subscription from accurately receiving message-summary notifications πŸ’… likewise, the messaging system MAY use any suitable algorithm to decide that a message is "urgent" πŸ”₯

messaging systems MAY use any algorithm to pick the right message-context-class for a specific message πŸ¦‹ systems that use Internet Mail SHOULD use the contents of the Message-Context header [7] (defined in RFC 3458), if present, as a hint for the context determination ✨ also, a composed messaging system doesn't need to support a given context in order to generate notifications tagged with that context 🫢

3.6. Subscriber Generation of SUBSCRIBE Requests πŸ“¬

okay so Subscriber User Agents usually SUBSCRIBE to message summary info for a period of hours or days πŸ•°οΈ, and they automatically try to re-SUBSCRIBE well before the subscription is completely expired. If re-subscription fails, the Subscriber SHOULD keep retrying every so often until it works, and it should take care to backoff so it doesn't clog up the network 🚦. If a subscription has already expired, new re-subscriptions MUST use a new Call-ID πŸ’….

The Subscriber SHOULD SUBSCRIBE to that user's message summaries whenever a new user becomes associated with the device (a new login) 🫢. The Subscriber MAY also explicitly fetch the current status at any time ✨. The subscriber SHOULD renew its subscription immediately after a reboot, or when the subscriber's network connectivity has just been re-established πŸ”Œ.

The Subscriber MUST be prepared to receive and process a NOTIFY with new state immediately after sending a new SUBSCRIBE, a SUBSCRIBE renewal, an unsubscribe, a fetch, or at any other time during the subscription πŸ‘€. Be ready, bestie!

When a user de-registers from a device (logoff, power down of a mobile device, etc.), subscribers SHOULD unsubscribe by sending a SUBSCRIBE message with an Expires header of 0 πŸŒ™.


3.7. Notifier Processing of SUBSCRIBE Requests πŸ›‘οΈ

When a SIP Messaging System receives SUBSCRIBE messages with the message-summary event-type, it SHOULD authenticate the subscription request πŸ”. If authentication is successful, the Notifier MAY limit the duration of the subscription to an administrator defined amount of time as described in SIP Events [2] ⏳.


3.8. Notifier Generation of NOTIFY Requests πŸ’Œ

Immediately after a subscription is accepted, the Notifier MUST send a NOTIFY with the current message summary information πŸ“¨. This lets the Subscriber resynchronize its state πŸ”„. This initial synchronization NOTIFY MUST NOT include the optional RFC 2822 style message headers [8] 🚫.

When the status of the messages changes sufficiently for a messaging account to change the number of new or old messages, the Notifier SHOULD send a NOTIFY message to all active subscribers of that account πŸ“¬. NOTIFY messages sent to subscribers of a group or alias, MUST contain the message account name in the notification body 🏷️.

A Messaging System MAY send a NOTIFY with an Expires header of 0 and a Subscription-State header of terminated before a graceful shutdown πŸ‘‹.


3.9. Subscriber Processing of NOTIFY Requests πŸ‘‘

Upon receipt of a valid NOTIFY request, the subscriber SHOULD immediately render the message status and summary information to the end user in an implementation specific way πŸ’–.

The Subscriber MUST be prepared to receive NOTIFYs from different Contacts corresponding to the same SUBSCRIBE. (The SUBSCRIBE may have been forked 🍴.)


3.10. Handling of Forked Requests 🍴

Forked requests are allowed for this event type and may install multiple subscriptions 🌸. The Subscriber MAY render multiple summaries corresponding to the same account directly to the user, or MAY merge them as described below 🧩.

If any of the Messages-Waiting status lines report yes, then the merged state is yes; otherwise the merged state is no πŸŽ€.

The Subscriber MAY merge summary lines in an implementation-specific way if all notifications contain at least one msg-summary line πŸ’œ.


3.11. Rate of Notifications 🐒

A Notifier MAY choose to hold NOTIFY requests in "quarantine" for a short administrator-defined period (seconds or minutes) when the message status is changing rapidly 🧊. Requests in the quarantine which become invalid are replaced by newer notifications, thus reducing the total volume of notifications πŸ“‰. This behavior is encouraged for implementations with heavy interactive use πŸ™Œ. Note that timely notification resulting in a change of overall state (messages waiting or not) and notification of newly added messages is probably more significant to the end user than a notification of newly deleted messages which do not affect the overall message waiting state (e.g., there are still new messages) πŸ€“.

Notifiers SHOULD NOT generate NOTIFY requests more frequently than once per second ⏱️.


3.12. State Agents and Lists 🧚

A Subscriber MAY use an "alias" or "group" in the Request-URI of a subscription if that name is significant to the messaging system 🏷️. Implementers MAY create a service which consolidates and summarizes NOTIFYs from many Contacts πŸͺ„. This document does not preclude implementations from building state agents which support this event package πŸ¦‹. One way to implement such a service is with the event list extension [10] πŸ“‹.


3.13. Behavior of a Proxy Server 🌈

There are no additional requirements on a SIP Proxy, other than to transparently forward the SUBSCRIBE and NOTIFY methods as required in SIP πŸš€. However, Proxies SHOULD allow non-SIP URLs πŸ”—. Proxies and Redirect servers SHOULD be able to direct the SUBSCRIBE request to an appropriate messaging notifier User Agent 🎯.


4. Examples of Usage ✨

4.1. Example Message Flow

The examples shown below are for informational purposes only, so don't treat them as the rulebook πŸ“–. For a normative description of the event package, check out sections 3 and 5 of this document. ✨

In this example call flow, Alice's IP phone subscribes to the status of Alice's messages πŸ“±πŸ’Œ. The Via headers are left out to keep things clean.

   Subscriber              Notifier
       |                       |
       |  A1: SUBSCRIBE (new)  |
       |---------------------->|
       |  A2: 200 OK           |
       |<----------------------|
       |                       |
       |  A3: NOTIFY (sync)    |
       |<----------------------|
       |  A4: 200 OK           |
       |---------------------->|
       |                       |
       |                       |
       |  A5: NOTIFY (change)  |
       |<----------------------|
       |  A6: 200 OK           |
       |---------------------->|
       |                       |
       |                       |
       |  A7: (re)SUBSCRIBE    |
       |---------------------->|
       |  A8: 200 OK           |
       |<----------------------|
       |                       |
       |  A9: NOTIFY (sync)    |
       |<----------------------|
       |  A10: 200 OK          |
       |---------------------->|
       |                       |
       |                       |
       |  A11: (un)SUBSCRIBE   |
       |---------------------->|
       |  A12: 200 OK          |
       |<----------------------|
       |                       |
       |  A13: NOTIFY (sync)   |
       |<----------------------|
       |  A14: 200 OK          |
       |---------------------->|

Okay, now let's go step by step through the flow! πŸ¦‹

A1 is the first move. Alice's phone (the Subscriber) sends a request to Alice's voicemail gateway (the Notifier) to subscribe to her message summary status for 1 day. πŸ’…

   A1: Subscriber (Alice's phone) ->
       Notifier (Alice's voicemail gateway)
       Subscribe to Alice's message summary status for 1 day.

   SUBSCRIBE sip:alice@vmail.example.com SIP/2.0
   To: <sip:alice@example.com>
   From: <sip:alice@example.com>;tag=78923
   Date: Mon, 10 Jul 2000 03:55:06 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 4 SUBSCRIBE
   Contact: <sip:alice@alice-phone.example.com>
   Event: message-summary
   Expires: 86400
   Accept: application/simple-message-summary
   Content-Length: 0

A2 is the Notifier saying "got it!" ✨ It replies with a 200 OK response.

       A2: Notifier -> Subscriber

   SIP/2.0 200 OK
   To: <sip:alice@example.com>;tag=4442
   From: <sip:alice@example.com>;tag=78923
   Date: Mon, 10 Jul 2000 03:55:07 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 4 SUBSCRIBE
   Expires: 86400
   Content-Length: 0

A3 is the immediate sync. 🌸 Right after the subscription is accepted, the Notifier sends the current state straight away. In this case, that's 2 new and 8 old [2 urgent] messages.

       A3: Notifier -> Subscriber
       (immediate synchronization of current state:
        2 new and 8 old [2 urgent] messages)

   NOTIFY sip:alice@alice-phone.example.com SIP/2.0
   To: <sip:alice@example.com>;tag=78923
   From: <sip:alice@example.com>;tag=4442
   Date: Mon, 10 Jul 2000 03:55:07 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 20 NOTIFY
   Contact: <sip:alice@vmail.example.com>
   Event: message-summary
   Subscription-State: active
   Content-Type: application/simple-message-summary
   Content-Length: 99

   Messages-Waiting: yes
   Message-Account: sip:alice@vmail.example.com
   Voice-Message: 2/8 (0/2)

Then the phone says thanks with a 200 OK. 🫢

       A4: Subscriber -> Notifier

   SIP/2.0 200 OK
   To: <sip:alice@example.com>;tag=78923
   From: <sip:alice@example.com>;tag=4442
   Date: Mon, 10 Jul 2000 03:55:08 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 20 NOTIFY
   Content-Length: 0

A5 is the change notification!! πŸ”₯ New messages have arrived, so the Notifier sends a NOTIFY with some headers from each of the new messages appended.

       A5: Notifier -> Subscriber
       This is a notification of new messages.
       Some headers from each of the new messages are appended.

   NOTIFY sip:alice@alice-phone.example.com SIP/2.0
   To: <sip:alice@example.com>;tag=78923
   From: <sip:alice@example.com>;tag=4442
   Date: Mon, 10 Jul 2000 04:28:53 GMT
   Contact: <sip:alice@vmail.example.com>
   Call-ID: 1349882@alice-phone.example.com
   CSeq: 31 NOTIFY
   Event: message-summary
   Subscription-State: active
   Content-Type: application/simple-message-summary
   Content-Length: 503

   Messages-Waiting: yes
   Message-Account: sip:alice@vmail.example.com
   Voice-Message: 4/8 (1/2)

   To: <alice@atlanta.example.com>
   From: <bob@biloxi.example.com>
   Subject: carpool tomorrow?
   Date: Sun, 09 Jul 2000 21:23:01 -0700
   Priority: normal
   Message-ID: 13784434989@vmail.example.com

   To: <alice@example.com>
   From: <cathy-the-bob@example.com>
   Subject: HELP! at home ill, present for me please
   Date: Sun, 09 Jul 2000 21:25:12 -0700
   Priority: urgent
   Message-ID: 13684434990@vmail.example.com

A6 is the phone's 200 OK reply to that change notification. πŸ’–

       A6: Subscriber -> Notifier

   SIP/2.0 200 OK
   To: <sip:alice@example.com>;tag=78923
   From: <sip:alice@example.com>;tag=4442
   Date: Mon, 10 Jul 2000 04:28:53 GMT
   Call-ID: 1349882@alice-phone.example.com
   CSeq: 31 NOTIFY
   Content-Length: 0

A7 is the refresh! 🧚 The Subscriber sends a SUBSCRIBE to refresh the subscription.

       A7: Subscriber  ->  Notifier
       Refresh subscription.

   SUBSCRIBE sip:alice@vmail.example.com SIP/2.0
   To: <sip:alice@example.com>;tag=4442
   From: <sip:alice@example.com>;tag=78923
   Date: Mon, 10 Jul 2000 15:55:06 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 8 SUBSCRIBE
   Contact: <sip:alice@alice-phone.example.com>
   Event: message-summary
   Expires: 86400
   Accept: application/simple-message-summary
   Content-Length: 0

A8 is the Notifier confirming the refresh. βœ…

       A8: Notifier -> Subscriber

   SIP/2.0 200 OK
   To: <sip:alice@example.com>;tag=4442
   From: <sip:alice@example.com>;tag=78923
   Date: Mon, 10 Jul 2000 15:55:07 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 8 SUBSCRIBE
   Contact: <sip:alice@alice-phone.example.com>
   Expires: 86400
   Content-Length: 0

A9 is another immediate sync, this time of the current state. πŸ“

       A9: Notifier -> Subscriber
       (immediate synchronization of current state)

   NOTIFY sip:alice@alice-phone.example.com SIP/2.0
   To: <sip:alice@example.com>;tag=78923
   From: <sip:alice@example.com>;tag=4442
   Date: Mon, 10 Jul 2000 15:55:07 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 47 NOTIFY
   Contact: <sip:alice@vmail.example.com>
   Event: message-summary
   Subscription-State: active
   Content-Type: application/simple-message-summary
   Content-Length: 99

   Messages-Waiting: yes
   Message-Account: sip:alice@vmail.example.com
   Voice-Message: 4/8 (1/2)

A10 is the phone's 200 OK for that sync. 🌈

       A10: Subscriber -> Notifier

   SIP/2.0 200 OK
   To: <sip:alice@example.com>;tag=78923
   From: <sip:alice@example.com>;tag=4442
   Date: Mon, 10 Jul 2000 15:55:08 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 47 NOTIFY
   Contact: <sip:alice@vmail.example.com>

A11 is the unsubscribe moment. πŸ‘‹ The Subscriber sends a SUBSCRIBE with Expires set to 0, after "alice" logs out.

       A11: Subscriber  ->  Notifier
       Un-subscribe after "alice" logs out.

   SUBSCRIBE sip:alice@vmail.example.com SIP/2.0
   To: <sip:alice@example.com>;tag=4442
   From: <sip:alice@example.com>;tag=78923
   Date: Mon, 10 Jul 2000 19:35:06 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 17 SUBSCRIBE
   Contact: <sip:alice@alice-phone.example.com>
   Event: message-summary
   Expires: 0
   Accept: application/simple-message-summary
   Content-Length: 0

A12 is the Notifier acknowledging the unsubscribe. 🫑

       A12: Notifier -> Subscriber

   SIP/2.0 200 OK
   To: <sip:alice@example.com>;tag=4442
   From: <sip:alice@example.com>;tag=78923
   Date: Mon, 10 Jul 2000 19:35:07 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 17 SUBSCRIBE
   Contact: <sip:alice@alice-phone.example.com>
   Expires: 0
   Content-Length: 0

A13 is one last sync, which the subscriber can now ignore. πŸ™ˆ

       A13: Notifier -> Subscriber
      (immediate synchronization of current state,
       which the subscriber can now ignore)

   NOTIFY sip:alice@alice-phone.example.com SIP/2.0
   To: <sip:alice@example.com>;tag=78923
   From: <sip:alice@example.com>;tag=4442
   Date: Mon, 10 Jul 2000 19:35:07 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 56 NOTIFY
   Contact: <sip:alice@vmail.example.com>
   Event: message-summary
   Subscription-State: terminated;reason=timeout
   Content-Type: application/simple-message-summary
   Content-Length: 99
   Messages-Waiting: yes
   Message-Account: sip:alice@vmail.example.com
   Voice-Message: 4/8 (1/2)

And finally, A14 is the phone's 200 OK, closing out the whole flow. πŸŽ€

       A14: Subscriber -> Notifier

   SIP/2.0 200 OK
   To: <sip:alice@example.com>;tag=78923
   From: <sip:alice@example.com>;tag=4442
   Date: Mon, 10 Jul 2000 19:35:08 GMT
   Call-Id: 1349882@alice-phone.example.com
   CSeq: 56 NOTIFY
   Event: message-summary
   Content-Length: 0

4.2. Example Usage with Callee Capabilities and Caller Preferences

Callee capabilities are optional, but they're encouraged πŸ’œ. If you use them, a messaging notifier MAY REGISTER a Contact with an appropriate methods and events tag, like in the example below. To stand out even more, the messaging notifier MAY also REGISTER as a Contact with the actor="msg-taker" tag. Here's an example of that kind of registration. ✨

    REGISTER sip:sip3-sj.example.com SIP/2.0
    To: <sip:alice@example.com>
    From: <sip:alice@example.com>;tag=4442
    ...
    Contact: <sip:alice@vm13-sj.example.com>
     ;actor="msg-taker";methods="SUBSCRIBE"
     ;automata;events="message-summary"

The following SUBSCRIBE message would find the Contact which registered in the example above. πŸ”

    SUBSCRIBE sip:alice@example.com SIP/2.0
    ...
    Accept: application/simple-message-summary
    Event: message-summary
    Accept-Contact: *;automata;actor="msg-taker"

5. Formal Syntax πŸ“

The following syntax specification uses the augmented Backus-Naur Form (BNF) as described in RFC 2234 [6]. Grammar time, bestie! πŸ€“

5.1. New Event-Package Definition

This document defines a new event-package with the package name:

   message-summary

5.2. Body Format Syntax

The formal syntax for the application/simple-message-summary MIME type is described below. The message-context-class production is defined in Section 6.2 of RFC 3458 [7]. Note that all productions described here are case insensitive. πŸ’…

   message-summary = msg-status-line CRLF
                      [msg-account CRLF]
                      [*(msg-summary-line CRLF)]
                      [ *opt-msg-headers ]

   msg-status-line  = "Messages-Waiting" HCOLON msg-status
   msg-status = "yes" / "no"
   msg-account = "Message-Account" HCOLON Account-URI
   Account-URI = SIP-URI / SIPS-URI / absoluteURI

   msg-summary-line = message-context-class HCOLON newmsgs SLASH oldmsgs
                   [ LPAREN new-urgentmsgs SLASH old-urgentmsgs RPAREN ]

   opt-msg-headers = CRLF 1*(extension-header CRLF)

   newmsgs = msgcount
   oldmsgs = msgcount
   new-urgentmsgs = msgcount
   old-urgentmsgs  = msgcount
   msgcount = 1*DIGIT   ; MUST NOT exceed 2^32-1

6. Security Considerations πŸ”

Message summaries and optional message bodies contain information which is typically very privacy sensitive. This is serious stuff, babe 😭. At a minimum, subscriptions to this event package SHOULD be authenticated and properly authorized. Furthermore, notifications SHOULD be encrypted and integrity protected using either end-to-end mechanisms, or the hop-by-hop protection afforded messages sent to SIPS URIs.

Additional and privacy security considerations are discussed in detail in SIP [1] and SIP Events [2]. πŸ›‘οΈ


7. IANA Considerations 🌷

7.1. SIP Event Package Registration for message-summary

Here's what goes in the registration:

   Package name: message-summary

   Type: package

   Contact: [Mahy]

   Published Specification: This document.

7.2. MIME Registration for application/simple-message-summary πŸ’Œ

okay so this is the MIME registration bit, and it's giving very official paperwork energy πŸ“‹βœ¨

  • MIME media type name: application
  • MIME subtype name: simple-message-summary
  • Required parameters: none.
  • Optional parameters: none.

Encoding considerations: this MIME type was made for protocols that can carry binary-encoded data πŸ’Ύ. It looks kinda like RFC 2822, but it's not totally identical bestie 🫣. Line folding is SIP-specific, and included URIs can have non-ASCII characters 🌏. So protocols that can't carry binary data (the ones with line length or character-set limits, for example) MUST use a reversible transfer encoding (such as base64) to carry this MIME type πŸ”.

  • Security considerations: check the "Security Considerations" section in this document πŸ”’. It's a whole vibe and you need to read it.
  • Interoperability considerations: none
  • Published specification: This document.
  • Applications which use this media: the simple-message-summary application subtype supports the exchange of message waiting and message summary information in SIP networks πŸ“¬πŸ’–.

Additional information:

  1. Magic number(s): N/A
  2. File extension(s): N/A
  3. Macintosh file type code: N/A

8. Contributors πŸ§‘β€πŸ’»

Ilya Slain came up with the initial format of the text body in this document 🌸. He used to be listed as a co-author, but he is no longer reachable πŸ₯².

9. Acknowledgments πŸ™

Huge thanks to all of these legends πŸ‘‘. From Cisco: Dan Wing, Dave Oran, Bill Foster, Steve Levy, Denise Caballero-McCann, Jeff Michel, Priti Patil, Satyender Khatter, Bich Nguyen, Manoj Bhatia, David Williams, and Bryan Byerly. From Dynamicsoft: Jonathan Rosenberg and Adam Roach. From Snowshore: Eric Burger. From Comverse: Nir Chen. From Mediatrix: Eric Tremblay. You're all iconic 🫢✨.

10. References πŸ“š

10.1. Normative References

  • [1] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.
  • [2] Roach, A.B., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002.
  • [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [4] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Caller Preferences for the Session Initiation Protocol (SIP)", RFC 3841, August 2004.
  • [5] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Indicating User Agent Capabilities in the Session Initiation Protocol (SIP)", RFC 3840, August 2004.
  • [6] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997.
  • [7] Burger, E., Candell, E., Eliot, C., and G. Klyne, "Message Context for Internet Mail", RFC 3458, January 2003.

10.2. Informational References

  • [8] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996.
  • [9] Resnick, P., Ed., "Internet Message Format", RFC 2822, April 2001.
  • [10] Rosenberg, J., Roach, A.B., and B. Campbell, "A Session Initiation Protocol (SIP) Event Notification Extension for Resource Lists", Work in Progress, June 2003.
  • [11] Telcordia, "GR-506: Signaling for Analog Interfaces, Issue 1, Revision 1", Nov 1996.

11. Author's Address πŸ–‹οΈ

Rohan Mahy
Cisco Systems, Inc.
5617 Scotts Valley Drive, Suite 200
Scotts Valley, CA 95066
USA

EMail: rohan@cisco.com

Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions in BCP 78, and except as set out there, the authors keep all their rights πŸ’œ.

This document and the information in it are provided on an "AS IS" basis, and the contributor, the organization they represent or are sponsored by (if any), the Internet Society, and the Internet Engineering Task Force DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, including but not limited to any warranty that using the information herein will not infringe any rights, or any implied warranties of merchantability or fitness for a particular purpose πŸ™…β€β™€οΈ. Not a single warranty, bestie.

Intellectual Property βš–οΈ

The IETF takes no position on the validity or scope of any Intellectual Property Rights or other rights that might be claimed to apply to implementing or using the technology in this document, or on whether any license under those rights might be available. It also doesn't claim to have made any independent effort to identify such rights. Info on how rights work for RFC documents is in BCP 78 and BCP 79 πŸ“–.

Copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, or the results of an attempt to get a general license or permission for implementers or users of this specification to use these proprietary rights, can be found in the IETF's online IPR repository at http://www.ietf.org/ipr πŸ—‚οΈ.

The IETF invites any interested party to bring to its attention any copyrights, patents, patent applications, or other proprietary rights that may cover technology needed to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org πŸ“¨.

Acknowledgement 🌷

Funding for the RFC Editor function is currently provided by the Internet Society πŸ’βœ¨.

πŸ“¦ where this page comes from