⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc4028.htm

📁 RFC4028,session timer的标准文档
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML lang=en xml:lang="en"><HEAD><TITLE>RFC 4028 - Session Timers in the Session Initiation Protocol (SIP)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content=index,follow name=robots>
<META content="rfcmarkup version 1.60" name=creator><LINK href="/images/rfc.png" 
type=image/png rel=icon><LINK href="/images/rfc.png" type=image/png 
rel="shortcut icon">
<STYLE type=text/css>	body {	    margin: 0px 8px;            font-size: 1em;	}        h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {	    font-weight: bold;            line-height: 0pt;            display: inline;            white-space: pre;            font-family: monospace;            font-size: 1em;	    font-weight: bold;        }        pre {            font-size: 1em;        }	.pre {	    white-space: pre;	    font-family: monospace;	}	.header{	    font-weight: bold;	}        .invisible {            text-decoration: none;            color: white;        }        @media print {            body {                font-size: 10.5pt;            }            h1, h2, h3, h4, h5, h6 {                font-size: 10.5pt;            }                    a:link, a:visited {                color: inherit;                text-decoration: none;            }	    .break {		page-break-before: always;	    }            .noprint {                display: none;            }        }	@media screen {	    .grey, .grey a:link, .grey a:visited {		color: #777;	    }            .docinfo {                background-color: #EEE;            }            .top {                border-top: 2px solid #EEE;            }            .bgwhite  { background-color: white; }            .bgred    { background-color: #F44; }            .bggrey   { background-color: #666; }            .bgbrown  { background-color: #840; }                        .bgorange { background-color: #FA0; }            .bgyellow { background-color: #EE0; }            .bgmagenta{ background-color: #F4F; }            .bgblue   { background-color: #66F; }            .bgcyan   { background-color: #4DD; }            .bggreen  { background-color: #4F4; }            .legend   { font-size: 90%; }            .cplate   { font-size: 70%; border: solid grey 1px; }	}    </STYLE>

<SCRIPT type=text/javascript><!--    function addHeaderTags() {	var spans = document.getElementsByTagName("span");	for (var i=0; i < spans.length; i++) {	    var elem = spans[i];	    if (elem) {		var level = elem.getAttribute("class");                if (level == "h1" || level == "h2" || level == "h3" || level == "h4" || level == "h5" || level == "h6") {                    elem.innerHTML = "<"+level+">"+elem.innerHTML+"</"+level+">";		                }	    }	}    }    var legend_html = "Colour legend:<br />      <table>         <tr><td>Unknown:</td>          <td><span class='cplate bgwhite'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Draft:</td>            <td><span class='cplate bgred'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Informational:</td>    <td><span class='cplate bgorange'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Experimental:</td>     <td><span class='cplate bgyellow'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Best Common Practice:</td><td><span class='cplate bgmagenta'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Proposed Standard:</td><td><span class='cplate bgblue'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Draft Standard:</td>   <td><span class='cplate bgcyan'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Standard:</td>         <td><span class='cplate bggreen'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Historic:</td>         <td><span class='cplate bggrey'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Obsolete:</td>         <td><span class='cplate bgbrown'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>     </table>";    function showElem(id) {        var elem = document.getElementById(id);        elem.innerHTML = eval(id+"_html");        elem.style.visibility='visible';    }    function hideElem(id) {        var elem = document.getElementById(id);        elem.style.visibility='hidden';                elem.innerHTML = "";    }    // -->    </SCRIPT>
</HEAD>
<BODY onload=addHeaderTags()>
<DIV style="HEIGHT: 8px">
<DIV class="pre noprint docinfo bgblue" 
onmouseover="this.style.cursor='pointer';" title="Click for colour legend." 
style="POSITION: absolute; HEIGHT: 6px" onclick="showElem('legend');" 
onmouseout="hideElem('legend')"></DIV>
<DIV class="docinfo noprint pre legend" id=legend 
onmouseover="showElem('legend');" 
style="BORDER-RIGHT: #345 1px solid; PADDING-RIGHT: 9px; BORDER-TOP: #345 1px solid; PADDING-LEFT: 7px; LEFT: 4ex; VISIBILITY: hidden; PADDING-BOTTOM: 5px; BORDER-LEFT: #345 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #345 1px solid; POSITION: absolute; TOP: 4px; BACKGROUND-COLOR: white" 
onmouseout="hideElem('legend');"></DIV></DIV><SPAN 
class="pre noprint docinfo top">[<A title="Document search and retrieval page" 
href="../html/">RFCs/IDs</A>] [<A title="Plaintext version of this document" 
href="/rfc/rfc4028.txt">Plain Text</A>] [From <A 
href="draft-ietf-sip-session-timer">draft-ietf-sip-session-timer</A>] 
</SPAN><BR><SPAN class="pre noprint docinfo"></SPAN><BR><SPAN 
class="pre noprint docinfo">PROPOSED STANDARD</SPAN><BR><SPAN 
class="pre noprint docinfo"></SPAN><BR><PRE>Network Working Group                                         S. Donovan
Request for Comments: 4028                                  J. Rosenberg
Category: Standards Track                                  Cisco Systems
                                                              April 2005


        <SPAN class=h1>Session Timers in the Session Initiation Protocol (SIP)</SPAN>

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   This document defines an extension to the Session Initiation Protocol
   (SIP).  This extension allows for a periodic refresh of SIP sessions
   through a re-INVITE or UPDATE request.  The refresh allows both user
   agents and proxies to determine whether the SIP session is still
   active.  The extension defines two new header fields:
   Session-Expires, which conveys the lifetime of the session, and
   Min-SE, which conveys the minimum allowed value for the session
   timer.





















<SPAN class=grey>Donovan &amp; Rosenberg         Standards Track                     [Page 1]</SPAN>
<A class=invisible id=page-2 href="#page-2" name=page-2><SPAN class=break> </SPAN></A>
<SPAN class=grey><A href="./rfc4028">RFC 4028</A>                     Session Timer                    April 2005</SPAN>


Table of Contents

   <A href="#section-1">1</A>.  Introduction . . . . . . . . . . . . . . . . . . . . . . . .   <A href="#page-2">2</A>
   <A href="#section-2">2</A>.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . .   <A href="#page-3">3</A>
   <A href="#section-3">3</A>.  Overview of Operation  . . . . . . . . . . . . . . . . . . .   <A href="#page-4">4</A>
   <A href="#section-4">4</A>.  Session-Expires Header Field Definition  . . . . . . . . . .   <A href="#page-6">6</A>
   <A href="#section-5">5</A>.  Min-SE Header Field Definition . . . . . . . . . . . . . . .   <A href="#page-8">8</A>
   <A href="#section-6">6</A>.  422 Response Code Definition . . . . . . . . . . . . . . . .   <A href="#page-8">8</A>
   <A href="#section-7">7</A>.  UAC Behavior . . . . . . . . . . . . . . . . . . . . . . . .   <A href="#page-9">9</A>
       <A href="#section-7.1">7.1</A>.  Generating an Initial Session Refresh Request  . . . .   <A href="#page-9">9</A>
       <A href="#section-7.2">7.2</A>.  Processing a 2xx Response  . . . . . . . . . . . . . .   <A href="#page-9">9</A>
       <A href="#section-7.3">7.3</A>.  Processing a 422 Response  . . . . . . . . . . . . . .  <A href="#page-11">11</A>
       <A href="#section-7.4">7.4</A>.  Generating Subsequent Session Refresh Requests . . . .  <A href="#page-11">11</A>
   <A href="#section-8">8</A>.  Proxy Behavior . . . . . . . . . . . . . . . . . . . . . . .  <A href="#page-12">12</A>
       <A href="#section-8.1">8.1</A>.  Processing of Requests . . . . . . . . . . . . . . . .  <A href="#page-13">13</A>
       <A href="#section-8.2">8.2</A>.  Processing of Responses  . . . . . . . . . . . . . . .  <A href="#page-14">14</A>
       <A href="#section-8.3">8.3</A>.  Session Expiration . . . . . . . . . . . . . . . . . .  <A href="#page-15">15</A>
   <A href="#section-9">9</A>.  UAS Behavior . . . . . . . . . . . . . . . . . . . . . . . .  <A href="#page-15">15</A>
   <A href="#section-10">10</A>. Performing Refreshes . . . . . . . . . . . . . . . . . . . .  <A href="#page-17">17</A>
   <A href="#section-11">11</A>. Security Considerations  . . . . . . . . . . . . . . . . . .  <A href="#page-18">18</A>
       <A href="#section-11.1">11.1</A>. Inside Attacks . . . . . . . . . . . . . . . . . . . .  <A href="#page-18">18</A>
       <A href="#section-11.2">11.2</A>. Outside Attacks  . . . . . . . . . . . . . . . . . . .  <A href="#page-19">19</A>
   <A href="#section-12">12</A>. IANA Considerations  . . . . . . . . . . . . . . . . . . . .  <A href="#page-19">19</A>
       12.1. IANA Registration of Min-SE and Session-Expires
             Header Fields  . . . . . . . . . . . . . . . . . . . .  <A href="#page-19">19</A>
       12.2. IANA Registration of the 422 (Session Interval Too
             Small) Response Code . . . . . . . . . . . . . . . . .  <A href="#page-20">20</A>
       <A href="#section-12.3">12.3</A>. IANA Registration of the 'timer' Option Tag  . . . . .  <A href="#page-20">20</A>
   <A href="#section-13">13</A>. Example Call Flow  . . . . . . . . . . . . . . . . . . . . .  <A href="#page-20">20</A>
   <A href="#section-14">14</A>. Acknowledgements . . . . . . . . . . . . . . . . . . . . . .  <A href="#page-25">25</A>
   <A href="#section-15">15</A>. References . . . . . . . . . . . . . . . . . . . . . . . . .  <A href="#page-25">25</A>
       <A href="#section-15.1">15.1</A>. Normative References . . . . . . . . . . . . . . . . .  <A href="#page-25">25</A>
       <A href="#section-15.2">15.2</A>. Informative References . . . . . . . . . . . . . . . .  <A href="#page-26">26</A>
   Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . . . <A href="#page-26">26</A>
   Full Copyright Statement. . . . . . . . . . . . . . . . . . . . . <A href="#page-27">27</A>

<SPAN class=h2><A name=section-1>1</A>.  Introduction</SPAN>

   The Session Initiation Protocol (SIP) [<A title='"SIP: Session Initiation Protocol"' href="#ref-2">2</A>] does not define a keepalive
   mechanism for the sessions it establishes.  Although the user agents
   may be able to determine whether the session has timed out by using
   session specific mechanisms, proxies will not be able to do so.  The
   result is that call stateful proxies will not always be able to
   determine whether a session is still active.  For instance, when a
   user agent fails to send a BYE message at the end of a session, or
   when the BYE message gets lost due to network problems, a call
   stateful proxy will not know when the session has ended.  In this
   situation, the call stateful proxy will retain state for the call and



<SPAN class=grey>Donovan &amp; Rosenberg         Standards Track                     [Page 2]</SPAN>
<A class=invisible id=page-3 href="#page-3" name=page-3><SPAN class=break> </SPAN></A>
<SPAN class=grey><A href="./rfc4028">RFC 4028</A>                     Session Timer                    April 2005</SPAN>


   has no method to determine when the call state information no longer
   applies.

   To resolve this problem, this extension defines a keepalive mechanism
   for SIP sessions.  UAs send periodic re-INVITE or UPDATE [<A title='"The Session Initiation Protocol (SIP) UPDATE Method"' href="#ref-3">3</A>] requests
   (referred to as session refresh requests) to keep the session alive.
   The interval for the session refresh requests is determined through a
   negotiation mechanism defined here.  If a session refresh request is
   not received before the interval passes, the session is considered
   terminated.  Both UAs are supposed to send a BYE, and call stateful
   proxies can remove any state for the call.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -