RFC 2976
The SIP INFO Method
The SIP INFO Method ๐
- RFC: 2976
- Written by: S. Donovan of dynamicsoft ๐ฉโ๐ป
- Stream: Network Working Group
- Category: Standards Track ๐
- Date: October 2000 ๐ธ
- Obsoletes / Updates: This header doesn't list anything it obsoletes or updates โจ
Status of this Memo ๐
This doc is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements ๐ซถ For the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited ๐ฆ
Copyright Notice โญ
Copyright (C) The Internet Society (2000). All Rights Reserved. ๐
Abstract ๐ง
okay so this doc proposes an extension to the Session Initiation Protocol (SIP) ๐ It adds the INFO method to SIP, and the whole point is to carry session related control information that gets generated during a session ๐ฅ One example is ISUP and ISDN signaling messages used to control telephony call services. Iconic! ๐
This and other example uses of the INFO method may get standardized later ๐
Table of Contents ๐๏ธ
1 Introduction................................................2
1.1 Example Uses................................................2
2 INFO Method.................................................3
2.1 Header Field Support for INFO Method........................3
2.2 Responses to the INFO Request Method........................4
2.3 Message Body Inclusion......................................5
2.4 Behavior of SIP User Agents.................................6
2.5 Behavior of SIP Proxy and Redirect Servers..................6
2.5.1 Proxy Server................................................6
2.5.2 Forking Proxy Server........................................6
2.5.3 Redirection Server..........................................6
3. INFO Message Bodies.........................................6
4. Guidelines for extensions making use of INFO................7
5. Security Considerations.....................................7
6. References..................................................8
7. Acknowledgments.............................................8
8. Author's Address............................................8
Full Copyright Statement....................................9
1. Introduction ๐ท
okay so the SIP protocol in [1] already defines session control messages used during the setup and tear down stages of a SIP controlled session ๐
Also, the SIP re-INVITE can be used during a session to change the characteristics of that session ๐ฅ Usually that's to change the properties of the media flows tied to the session, or to update the SIP session timer โฐ
BUT here's the tea: there's no general-purpose mechanism to carry session control information along the SIP signaling path during the session ๐ Not ideal, bestie ๐ญ
So the purpose of the INFO message is to carry application level information along the SIP signaling path โจ
The INFO method is not used to change the state of SIP calls, or the parameters of the sessions SIP initiates. It just sends optional application layer information, generally related to the session ๐ซถ
It's necessary that the mid-session signaling information goes through the same post session setup SIP signaling path. That's the path taken by SIP re-INVITEs, BYEs and other SIP requests tied to an individual session ๐ค๏ธ This lets SIP proxy servers receive that mid-session signaling info and potentially act on it ๐
This document extends SIP by defining the new INFO method ๐ฆ INFO is for carrying mid-call signaling information along the session signaling path ๐
1.1 Example Uses ๐
Here are a few of the potential uses of the INFO message, no cap:
- Carrying mid-call PSTN signaling messages between PSTN gateways.
- Carrying DTMF digits generated during a SIP session.
- Carrying wireless signal strength information in support of wireless mobility applications.
- Carrying account balance information.
- Carrying images or other non streaming information between the participants of a session.
These are just potential uses. This document does not specify such uses, nor does it necessarily recommend them ๐
It can also be envisioned that there will be other telephony and non-telephony uses of the INFO method โจ
2. INFO Method ๐
The INFO method is used for communicating mid-session signaling information along the signaling path for the call ๐
INFO is not used to change the state of SIP calls, and it doesn't change the state of sessions initiated by SIP either. Instead, it provides additional optional information that can further enhance the application using SIP ๐
The signaling path for INFO is the one set up by the call setup. That can be direct signaling between the calling and called user agents, or a path involving SIP proxy servers that were part of the call setup and added themselves to the Record-Route header on the initial INVITE message ๐ง
The mid-session information can ride in either an INFO message header or as part of a message body. Defining the message body and/or message headers used to carry that info is outside the scope of this document ๐
There are no specific semantics attached to INFO. The semantics come from the body or the new headers defined for use in INFO ๐ฅ
2.1 Header Field Support for INFO Method ๐๏ธ
Tables 1 and 2 add a column to tables 4 and 5 in [1]. Check Section 6 of [1] for a description of what the tables contain. The rules defined in the enc. and e-e columns in tables 4 and 5 in [1] also apply to use of the headers in the INFO request and to responses to the INFO request, so don't skip them ๐
2.2 Responses to the INFO Request Method ๐ฌ
If a server receives an INFO request, it MUST send a final response ๐
A 200 OK response MUST be sent by a UAS for an INFO request with no message body, but only if the INFO request was successfully received for an existing call. Beyond that, no additional operations are required ๐
Header Where INFO
------ ----- ----
Accept R o
Accept-Encoding R o
Accept-Language R o
Allow 200 -
Allow 405 o
Authorization R o
Call-ID gc m
Contact R o
Contact 1xx -
Contact 2xx -
Contact 3xx -
Contact 485 -
Content-Encoding e o
Content-Length e o
Content-Type e *
CSeq gc m
Date g o
Encryption g o
Expires g o
From gc m
Hide R o
Max-Forwards R o
Organization g o
Table 1 Summary of header fields, A-0
Handling INFO messages that contain message bodies is outside the scope of this document. The documents defining those message bodies will also need to define the SIP protocol rules that go with them ๐
A 481 Call Leg/Transaction Does Not Exist message MUST be sent by a UAS if the INFO request doesn't match any existing call leg ๐
If a server receives an INFO request with a body it understands, but it has no knowledge of INFO associated processing rules for that body, the body MAY be rendered and displayed to the user. The INFO gets responded to with a 200 OK ๐ธ
If the INFO request contains a body that the server does not understand, then, in the absence of INFO associated processing rules for that body, the server MUST respond with a 415 Unsupported Media Type message ๐ โโ๏ธ
Header Where INFO
------ ----- ----
Priority R o
Proxy-Authenticate 407 o
Proxy-Authorization R o
Proxy-Require R o
Require R o
Retry-After R -
Retry-After 404,480,486 o
Retry-After 503 o
Retry-After 600,603 o
Response-Key R o
Record-Route R o
Record-Route 2xx o
Route R o
Server r o
Subject R o
Timestamp g o
To gc(1) m
Unsupported 420 o
User-Agent g o
Via gc(2) m
Warning r o
WWW-Authenticate 401 o
Table 2 Summary of header fields, P-Z
Bodies that imply a change in the SIP call state or in the sessions initiated by SIP MUST NOT be sent in an INFO message. That's a hard no ๐ซ
Other request failure (4xx), Server Failure (5xx) and Global Failure (6xx) responses MAY be sent for the INFO Request ๐
2.3 Message Body Inclusion ๐
The INFO request MAY contain a message body ๐ซถ
2.4 Behavior of SIP User Agents ๐ค
Unless stated otherwise, the protocol rules for the INFO request follow those in [1] as defined for the BYE request. That covers the usage of tags, Route and Record-Route, retransmission and reliability, CSeq incrementing and message formatting ๐
An INFO request MAY be cancelled. A UAS that receives a CANCEL for an INFO request SHOULD respond to the INFO with a 487 Request Cancelled response, if a final response hasn't been sent to the INFO yet. After that, it should behave as if the request were never received ๐
Heads up, bestie: the INFO message MUST NOT change the state of the SIP call, or the sessions initiated by SIP. Non-negotiable ๐
2.5 Behavior of SIP Proxy and Redirect Servers ๐งโโ๏ธ
2.5.1 Proxy Server ๐ท
Unless stated otherwise, the protocol rules for the INFO request at a proxy are identical to those for a BYE request as specified in [1] ๐
2.5.2 Forking Proxy Server ๐ด
Unless stated otherwise, the protocol rules for the INFO request at a proxy are identical to those for a BYE request as specified in [1] ๐ฆ
2.5.3 Redirection Server ๐
Unless stated otherwise, the protocol rules for the INFO request at a proxy are identical to those for a BYE request as specified in [1] โจ
okay that's the first half of the tea, bestie ๐ซถ Part 2 is coming with Section 3 and everything after it ๐ ๐
3. INFO Message Bodies โจ
okay so the whole point of the INFO message ๐ง is to carry mid-session info between SIP user agents ๐ฑ๐ฌ. usually that info rides along in message bodies, but it can also be tucked into headers on the INFO message ๐. literally this is the mid-call "hey, quick update" move ๐
the definition of those message bodies, or any new headers made for the INFO method, is not part of this doc ๐. it's expected that separate documents will be written to define all of that ๐ (that's a future-you problem, bestie ๐ )
also, INFO does NOT add any extra way to guarantee in-order delivery ๐ญ. yes, the CSeq header goes up by one every time a new INFO is sent, but you should NOT use that to figure out the order of INFO info ๐ซ. why? because the CSeq count can have gaps ๐ณ๏ธ, since a user agent might be sending re-INVITEs or other SIP messages in between. so the numbers just aren't a reliable timeline, fr fr ๐
4. Guidelines for extensions making use of INFO ๐
okay, so if you're designing a SIP extension that uses INFO ๐, here are the things you should keep in mind ๐ง โจ
- think about how big the message bodies are ๐. they should be kept small ๐ค, because the message might travel over UDP ๐ก, and bigger messages can get fragmented ๐ฅ. nobody wants that drama ๐ฉ
- INFO messages could get forked by a SIP Proxy Server ๐ด. you need to think through what that does to the info inside them ๐ค
- multi-part message bodies can be super helpful ๐งฉ when you're deciding what goes inside an INFO message ๐
- extensions that use INFO MUST NOT rely on the INFO message to do anything that affects the SIP call state or the state of related sessions ๐ซ๐. this one is a hard no, bestie โ
- the INFO extension in this doc does NOT depend on Require or Proxy-Require headers ๐. extensions using INFO might need those mechanisms though ๐ง. still, you should avoid using Require and Proxy-Require if you can ๐ซถ, because it helps interoperability between SIP entities ๐ฆ
5. Security Considerations ๐
if the contents of the message body are private ๐, you can use end-to-end encryption on that body ๐ to keep unauthorized people from getting at the content ๐ต๏ธโโ๏ธ
there are no other security issues specific to the INFO method ๐. the security requirements from the SIP specification still apply to INFO too ๐
6. References ๐
- [1] Handley, M., Schulzrinne, H., Schooler, E. and J. Rosenberg, "SIP: Session Initiation Protocol", RFC 2543, March 1999. ๐งพ
7. Acknowledgements ๐ซถ
the author would like to thank Matthew Cannon for his contributions to this document ๐. they also thank the members of the MMUSIC and SIP working groups, especially Jonathan Rosenberg, for comments and suggestions on how to improve the document ๐ธ
8. Author's Address ๐ฎ
Steve Donovan dynamicsoft 5100 Tennyson Parkway, Suite 200 Plano, Texas 75024
Email: sdonovan@dynamicsoft.com
9. Full Copyright Statement ยฉ๏ธ
Copyright (C) The Internet Society (2000). All Rights Reserved. ๐
this document and translations of it may be copied and furnished to others ๐, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind ๐ฆ, provided that the above copyright notice and this paragraph are included on all such copies and derivative works ๐. however, this document itself may not be modified in any way ๐ซ, such as by removing the copyright notice or references to the Internet Society or other Internet organizations ๐ โโ๏ธ, except as needed for the purpose of developing Internet standards ๐ ๏ธ (in which case the procedures for copyrights defined in the Internet Standards process must be followed ๐), or as required to translate it into languages other than English ๐
the limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns โพ๏ธโจ
this document and the information contained herein is provided on an "AS IS" basis, and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ๐
Acknowledgement ๐
funding for the RFC Editor function is currently provided by the Internet Society ๐ ๐
๐ฆ where this page comes from
- ietf: rfc2976 2000-10
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms