draft-ietf-sipping-torture-tests-03.txt   draft-ietf-sipping-torture-tests-04.txt 
Network Working Group R. Sparks, Ed. Network Working Group R. Sparks, Ed.
Internet-Draft dynamicsoft Internet-Draft dynamicsoft
Expires: July 21, 2004 A. Hawrylyshen Expires: January 12, 2005 A. Hawrylyshen
Jasomi Networks Jasomi Networks
A. Johnston A. Johnston
MCI MCI
J. Rosenberg J. Rosenberg
dynamicsoft dynamicsoft
H. Schulzrinne H. Schulzrinne
Columbia University Columbia University
January 21, 2004 July 14, 2004
Session Initiation Protocol Torture Test Messages Session Initiation Protocol Torture Test Messages
draft-ietf-sipping-torture-tests-03 draft-ietf-sipping-torture-tests-04
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with By submitting this Internet-Draft, I certify that any applicable
all provisions of Section 10 of RFC2026. patent or other IPR claims of which I am aware have been disclosed,
and any of which I become aware will be disclosed, in accordance with
RFC 3668.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other Task Force (IETF), its areas, and its working groups. Note that
groups may also distribute working documents as Internet-Drafts. other groups may also distribute working documents as
Internet-Drafts.
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."
The list of current Internet-Drafts can be accessed at http:// The list of current Internet-Drafts can be accessed at
www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on July 21, 2004. This Internet-Draft will expire on January 12, 2005.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2004). All Rights Reserved. Copyright (C) The Internet Society (2004). All Rights Reserved.
Abstract Abstract
This informational document gives examples of Session Initiation This informational document gives examples of Session Initiation
Protocol (SIP) test messages designed to exercise and "torture" a Protocol (SIP) test messages designed to exercise and "torture" a SIP
parser. implementation.
Table of Contents Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Document Conventions . . . . . . . . . . . . . . . . . . 4 2. Document Conventions . . . . . . . . . . . . . . . . . . . . 4
2.1 Representing Long Lines . . . . . . . . . . . . . . . . 4 2.1 Representing Long Lines . . . . . . . . . . . . . . . . . 4
2.2 Representing Non-printable Characters . . . . . . . . . 5 2.2 Representing Non-printable Characters . . . . . . . . . . 5
2.3 Representing Long Repeating Strings . . . . . . . . . . 5 2.3 Representing Long Repeating Strings . . . . . . . . . . . 5
3. SIP Test Messages . . . . . . . . . . . . . . . . . . . 6 3. SIP Test Messages . . . . . . . . . . . . . . . . . . . . . 6
3.1 Parser tests (syntax) . . . . . . . . . . . . . . . . . 6 3.1 Parser tests (syntax) . . . . . . . . . . . . . . . . . . 6
3.1.1 Valid messages . . . . . . . . . . . . . . . . . . . . . 6 3.1.1 Valid messages . . . . . . . . . . . . . . . . . . . . 6
3.1.1.1 A short tortuous INVITE . . . . . . . . . . . . . . . . 6 3.1.1.1 A short tortuous INVITE . . . . . . . . . . . . . 6
3.1.1.2 Wide range of valid characters . . . . . . . . . . . . . 8 3.1.1.2 Wide range of valid characters . . . . . . . . . . 8
3.1.1.3 Valid use of the % escaping mechanism . . . . . . . . . 9 3.1.1.3 Valid use of the % escaping mechanism . . . . . . 9
3.1.1.4 Escaped nulls in URIs . . . . . . . . . . . . . . . . . 10 3.1.1.4 Escaped nulls in URIs . . . . . . . . . . . . . . 10
3.1.1.5 Use of % when it is not an escape . . . . . . . . . . . 11 3.1.1.5 Use of % when it is not an escape . . . . . . . . 11
3.1.1.6 Message with no LWS between display name and < . . . . . 12 3.1.1.6 Message with no LWS between display name and < . . 11
3.1.1.7 Long values in header fields . . . . . . . . . . . . . . 12 3.1.1.7 Long values in header fields . . . . . . . . . . . 12
3.1.1.8 Extra trailing octets in a UDP datagram . . . . . . . . 14 3.1.1.8 Extra trailing octets in a UDP datagram . . . . . 14
3.1.1.9 Semicolon separated parameters in URI user part . . . . 15 3.1.1.9 Semicolon separated parameters in URI user part . 15
3.1.1.10 Varied and unknown transport types . . . . . . . . . . . 15 3.1.1.10 Varied and unknown transport types . . . . . . . 16
3.1.1.11 S/MIME signed message . . . . . . . . . . . . . . . . . 16 3.1.1.11 S/MIME signed message . . . . . . . . . . . . . 16
3.1.1.12 Unusual reason phrase . . . . . . . . . . . . . . . . . 19 3.1.1.12 Unusual reason phrase . . . . . . . . . . . . . 19
3.1.1.13 Empty reason phrase . . . . . . . . . . . . . . . . . . 20 3.1.1.13 Empty reason phrase . . . . . . . . . . . . . . 20
3.1.2 Invalid messages . . . . . . . . . . . . . . . . . . . . 20 3.1.2 Invalid messages . . . . . . . . . . . . . . . . . . . 21
3.1.2.1 Extraneous header field separators . . . . . . . . . . . 20 3.1.2.1 Extraneous header field separators . . . . . . . . 21
3.1.2.2 Content length larger than message . . . . . . . . . . . 21 3.1.2.2 Content length larger than message . . . . . . . . 21
3.1.2.3 Negative Content-Length . . . . . . . . . . . . . . . . 22 3.1.2.3 Negative Content-Length . . . . . . . . . . . . . 22
3.1.2.4 Request scalar fields with overlarge values . . . . . . 22 3.1.2.4 Request scalar fields with overlarge values . . . 23
3.1.2.5 Response scalar fields with overlarge values . . . . . . 23 3.1.2.5 Response scalar fields with overlarge values . . . 24
3.1.2.6 Unterminated quoted string in display-name . . . . . . . 24 3.1.2.6 Unterminated quoted string in display-name . . . . 24
3.1.2.7 <> enclosing Request-URI . . . . . . . . . . . . . . . . 25 3.1.2.7 <> enclosing Request-URI . . . . . . . . . . . . . 25
3.1.2.8 Malformed SIP Request-URI (embedded LWS) . . . . . . . . 25 3.1.2.8 Malformed SIP Request-URI (embedded LWS) . . . . . 26
3.1.2.9 Multiple SP separating Request-Line elements . . . . . . 26 3.1.2.9 Multiple SP separating Request-Line elements . . . 27
3.1.2.10 SP characters at end of Request-Line . . . . . . . . . . 27 3.1.2.10 SP characters at end of Request-Line . . . . . . 28
3.1.2.11 Escaped headers in SIP Request-URI . . . . . . . . . . . 27 3.1.2.11 Escaped headers in SIP Request-URI . . . . . . . 29
3.1.2.12 Invalid timezone in Date header field . . . . . . . . . 28 3.1.2.12 Invalid timezone in Date header field . . . . . 29
3.1.2.13 Failure to enclose name-addr URI in <> . . . . . . . . . 29 3.1.2.13 Failure to enclose name-addr URI in <> . . . . . 30
3.1.2.14 Spaces within addr-spec . . . . . . . . . . . . . . . . 29 3.1.2.14 Spaces within addr-spec . . . . . . . . . . . . 31
3.1.2.15 Non-token characters in display-name . . . . . . . . . . 30 3.1.2.15 Non-token characters in display-name . . . . . . 31
3.1.2.16 Unknown protocol version . . . . . . . . . . . . . . . . 30 3.1.2.16 Unknown protocol version . . . . . . . . . . . . 32
3.1.2.17 Start line and CSeq method mismatch . . . . . . . . . . 31 3.1.2.17 Start line and CSeq method mismatch . . . . . . 32
3.1.2.18 Unknown Method with CSeq method mismatch . . . . . . . . 31 3.1.2.18 Unknown Method with CSeq method mismatch . . . . 32
3.1.2.19 Overlarge response code . . . . . . . . . . . . . . . . 32 3.1.2.19 Overlarge response code . . . . . . . . . . . . 33
3.2 Transaction layer semantics . . . . . . . . . . . . . . 32 3.2 Transaction layer semantics . . . . . . . . . . . . . . . 33
3.2.1 Missing transaction identifier . . . . . . . . . . . . . 32 3.2.1 Missing transaction identifier . . . . . . . . . . . . 34
3.3 Application layer semantics . . . . . . . . . . . . . . 33 3.3 Application layer semantics . . . . . . . . . . . . . . . 34
3.3.1 Missing Required Header Fields . . . . . . . . . . . . . 33 3.3.1 Missing Required Header Fields . . . . . . . . . . . . 34
3.3.2 Request-URI with unknown scheme . . . . . . . . . . . . 33 3.3.2 Request-URI with unknown scheme . . . . . . . . . . . 35
3.3.3 Request-URI with known but atypical scheme . . . . . . . 34 3.3.3 Request-URI with known but atypical scheme . . . . . . 35
3.3.4 Unknown URI schemes in header fields . . . . . . . . . . 34 3.3.4 Unknown URI schemes in header fields . . . . . . . . . 36
3.3.5 Proxy-Require and Require . . . . . . . . . . . . . . . 35 3.3.5 Proxy-Require and Require . . . . . . . . . . . . . . 37
3.3.6 Unknown Content-Type . . . . . . . . . . . . . . . . . . 35 3.3.6 Unknown Content-Type . . . . . . . . . . . . . . . . . 37
3.3.7 Unknown authorization scheme . . . . . . . . . . . . . . 36 3.3.7 Unknown authorization scheme . . . . . . . . . . . . . 38
3.3.8 Multiple values in single value required fields . . . . 37 3.3.8 Multiple values in single value required fields . . . 38
3.3.9 Multiple Content-Length values . . . . . . . . . . . . . 38 3.3.9 Multiple Content-Length values . . . . . . . . . . . . 39
3.3.10 200 OK Response with broadcast Via header field value . 38 3.3.10 200 OK Response with broadcast Via header field
3.3.11 Max-Forwards of zero . . . . . . . . . . . . . . . . . . 39 value . . . . . . . . . . . . . . . . . . . . . . . 40
3.3.12 REGISTER with a contact header parameter . . . . . . . . 39 3.3.11 Max-Forwards of zero . . . . . . . . . . . . . . . . 41
3.3.13 REGISTER with a url parameter . . . . . . . . . . . . . 40 3.3.12 REGISTER with a contact header parameter . . . . . . 41
3.3.14 REGISTER with a url escaped header . . . . . . . . . . . 40 3.3.13 REGISTER with a url parameter . . . . . . . . . . . 42
3.3.15 Unacceptable Accept offering . . . . . . . . . . . . . . 41 3.3.14 REGISTER with a url escaped header . . . . . . . . . 43
3.4 Backward compatibility . . . . . . . . . . . . . . . . . 42 3.3.15 Unacceptable Accept offering . . . . . . . . . . . . 43
3.4.1 INVITE with RFC2543 syntax . . . . . . . . . . . . . . . 42 3.4 Backward compatibility . . . . . . . . . . . . . . . . . . 44
4. Security Considerations . . . . . . . . . . . . . . . . 42 3.4.1 INVITE with RFC2543 syntax . . . . . . . . . . . . . . 44
5. Open Issues and Remaining Work . . . . . . . . . . . . . 43 4. Security Considerations . . . . . . . . . . . . . . . . . . 45
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . 43 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 45
Informative References . . . . . . . . . . . . . . . . . 44 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 45
Authors' Addresses . . . . . . . . . . . . . . . . . . . 44 7. Informative References . . . . . . . . . . . . . . . . . . . 46
A. Bit-exact archive of each test message . . . . . . . . . 45 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 46
A.1 Encoded Reference Messages . . . . . . . . . . . . . . . 46 A. Bit-exact archive of each test message . . . . . . . . . . . 47
Intellectual Property and Copyright Statements . . . . . 50 A.1 Encoded Reference Messages . . . . . . . . . . . . . . . . 48
Intellectual Property and Copyright Statements . . . . . . . 52
1. Overview 1. Overview
This document is informational, and is NOT NORMATIVE on any aspect of This document is informational, and is NOT NORMATIVE on any aspect of
SIP. SIP.
This document contains test messages based on the current version This document contains test messages based on the current version
(2.0) of the Session Initiation Protocol as defined in [RFC3261]. (2.0) of the Session Initiation Protocol as defined in [RFC3261].
Some messages exercise SIP's use of SDP as described in [RFC3264]. Some messages exercise SIP's use of SDP as described in [RFC3264].
These messages were developed and refined at the SIPIt These messages were developed and refined at the SIPIt
interoperability test events. interoperability test events.
The test messages are organized into several sections. Some stress The test messages are organized into several sections. Some stress
only a SIP parser and others stress both the parser and the only a SIP parser and others stress both the parser and the
application above it. Some messages are valid, and some are not. Each application above it. Some messages are valid, and some are not.
example clearly calls out what makes any invalid messages incorrect. Each example clearly calls out what makes any invalid messages
incorrect.
This document does not attempt to catalog every way to make an This document does not attempt to catalog every way to make an
invalid message, nor does it attempt to be comprehensive in exploring invalid message, nor does it attempt to be comprehensive in exploring
unusual, but valid, messages. Instead, it tries to focus on areas unusual, but valid, messages. Instead, it tries to focus on areas
that have caused interoperability problems or have particularly that have caused interoperability problems or have particularly
unfavorable characteristics if they are handled improperly. This unfavorable characteristics if they are handled improperly. This
document is a seed for a test plan, not a test plan in itself. document is a seed for a test plan, not a test plan in itself.
The messages are presented in the text using a set of markup The messages are presented in the text using a set of markup
conventions to avoid ambiguity and meet Internet-Draft layout conventions to avoid ambiguity and meet Internet-Draft layout
skipping to change at page 4, line 50 skipping to change at page 4, line 51
defined in this section to remove that ambiguity. This markup uses defined in this section to remove that ambiguity. This markup uses
the start and end tag conventions of XML, but does not define any XML the start and end tag conventions of XML, but does not define any XML
document type. document type.
The appendix contains an encoded binary form of all the messages and The appendix contains an encoded binary form of all the messages and
the algorithm needed to decode them into files. the algorithm needed to decode them into files.
2.1 Representing Long Lines 2.1 Representing Long Lines
Several of these examples contain unfolded lines longer than 72 Several of these examples contain unfolded lines longer than 72
characters. These are captured between <allOneLine/> tags. The single characters. These are captured between <allOneLine/> tags. The
unfolded line is reconstructed by directly concatenating all lines single unfolded line is reconstructed by directly concatenating all
appearing between the tags (discarding any line-feeds or carriage lines appearing between the tags (discarding any line-feeds or
returns). There will be no whitespace at the end of lines. Any carriage returns). There will be no whitespace at the end of lines.
whitespace appearing at a fold-point will appear at the beginning of Any whitespace appearing at a fold-point will appear at the beginning
a line. of a line.
The following represent the same string of bits: The following represent the same string of bits:
Header-name: first value, reallylongsecondvalue, third value Header-name: first value, reallylongsecondvalue, third value
<allOneLine> <allOneLine>
Header-name: first value, Header-name: first value,
reallylongsecondvalue reallylongsecondvalue
, third value , third value
</allOneLine> </allOneLine>
skipping to change at page 6, line 28 skipping to change at page 6, line 29
3. SIP Test Messages 3. SIP Test Messages
3.1 Parser tests (syntax) 3.1 Parser tests (syntax)
3.1.1 Valid messages 3.1.1 Valid messages
3.1.1.1 A short tortuous INVITE 3.1.1.1 A short tortuous INVITE
This short, relatively human-readable message contains: This short, relatively human-readable message contains:
o line folding all over o line folding all over
o escaped characters within quotes o escaped characters within quotes
o an empty subject o an empty subject
o LWS between colons, semicolons, header field values, and other o LWS between colons, semicolons, header field values, and other
fields fields
o both comma separated and separate listing of header field values o both comma separated and separate listing of header field values
o mix or short and long form for the same header field name o mix or short and long form for the same header field name
o unknown header fields o unknown header fields
o unknown header field with a value that would be syntactically o unknown header field with a value that would be syntactically
invalid if it were defined in terms of generic-param invalid if it were defined in terms of generic-param
o unusual header field ordering o unusual header field ordering
o unusual header field name character case o unusual header field name character case
o unknown parameters of a known header field o unknown parameters of a known header field
o uri parameter with no value o uri parameter with no value
o header parameter with no value o header parameter with no value
o integer fields (Max-Forwards and CSeq) with leading zeros o integer fields (Max-Forwards and CSeq) with leading zeros
All elements should treat this as a well-formed request. All elements should treat this as a well-formed request.
The UnknownHeaderWithUnusualValue header field deserves special The UnknownHeaderWithUnusualValue header field deserves special
attention. If this header field were defined in terms of comma attention. If this header field were defined in terms of comma
separated values with semicolon separated parameters (as many of the separated values with semicolon separated parameters (as many of the
existing defined header fields), this would be invalid. However, existing defined header fields), this would be invalid. However,
since the receiving element does not know the definition of the since the receiving element does not know the definition of the
syntax for this field, it must parse it as a header-value. Proxies syntax for this field, it must parse it as a header-value. Proxies
would forward this header field unchanged. Endpoints would ignore the would forward this header field unchanged. Endpoints would ignore
header field. the header field.
Message Details : wsinv Message Details : wsinv
INVITE sip:vivekg@chair-dnrc.example.com;unknownparam SIP/2.0 INVITE sip:vivekg@chair-dnrc.example.com;unknownparam SIP/2.0
TO : TO :
sip:vivekg@chair-dnrc.example.com ; tag = 1918181833n sip:vivekg@chair-dnrc.example.com ; tag = 1918181833n
from : "J Rosenberg \\\"" <sip:jdrosen@example.com> from : "J Rosenberg \\\"" <sip:jdrosen@example.com>
; ;
tag = 98asjd8 tag = 98asjd8
MaX-fOrWaRdS: 0068 MaX-fOrWaRdS: 0068
Call-ID: 0ha0isndaksdj@192.0.2.1 Call-ID: wsinv.ndaksdj@192.0.2.1
Content-Length : 151 Content-Length : 151
cseq: 0009 cseq: 0009
INVITE INVITE
Via : SIP / 2.0 Via : SIP / 2.0
/UDP /UDP
192.0.2.2;branch=390skdjuw 192.0.2.2;branch=390skdjuw
s : s :
NewFangledHeader: newfangled value NewFangledHeader: newfangled value
continued newfangled value continued newfangled value
UnknownHeaderWithUnusualValue: ;;,,;;,; UnknownHeaderWithUnusualValue: ;;,,;;,;
skipping to change at page 8, line 20 skipping to change at page 8, line 10
t=0 0 t=0 0
m=audio 492170 RTP/AVP 0 12 m=audio 492170 RTP/AVP 0 12
m=video 3227 RTP/AVP 31 m=video 3227 RTP/AVP 31
a=rtpmap:31 LPC a=rtpmap:31 LPC
3.1.1.2 Wide range of valid characters 3.1.1.2 Wide range of valid characters
This message exercises a wider range of characters in several key This message exercises a wider range of characters in several key
syntactic elements than implementations usually see. Of particular syntactic elements than implementations usually see. Of particular
note: note:
o The Method contains non-alpha characters from token. Note that % o The Method contains non-alpha characters from token. Note that %
is not an escape character for this field. A method of IN%56ITE is is not an escape character for this field. A method of IN%56ITE
an unknown method. It is not the same as a method of INVITE is an unknown method. It is not the same as a method of INVITE
o The Request-URI contain unusual, but legal, characters o The Request-URI contain unusual, but legal, characters
o A branch parameter contains all non-alphanum characters from token o A branch parameter contains all non-alphanum characters from token
o The To header field value's quoted-string contains quoted-pair o The To header field value's quoted-string contains quoted-pair
expansions, including a quoted NULL character expansions, including a quoted NULL character
o The name part of name-addr in the From header field value contains o The name part of name-addr in the From header field value contains
multiple tokens (instead of a quoted string) with all non-alphanum multiple tokens (instead of a quoted string) with all non-alphanum
characters from the token production rule. That value also has an characters from the token production rule. That value also has an
unknown header parameter whose name contains the non-alphanum unknown header parameter whose name contains the non-alphanum
token characters and whose value is a non-ascii range UTF-8 token characters and whose value is a non-ascii range UTF-8
encoded string. The tag parameter on this value contains the encoded string. The tag parameter on this value contains the
non-alphanum token characters non-alphanum token characters
o The Call-ID header field value contains the non-alphanum o The Call-ID header field value contains the non-alphanum
characters from word. Notice that in this production: characters from word. Notice that in this production:
* % is not an escape character. (It is only an escape character * % is not an escape character. (It is only an escape character
in productions matching the rule "escaped") in productions matching the rule "escaped")
* " does not start a quoted-string. None of ',` or " imply that * " does not start a quoted-string. None of ',` or " imply that
there will be a matching symbol later in the string there will be a matching symbol later in the string
* The characters []{}()<> do not have any grouping semantics. * The characters []{}()<> do not have any grouping semantics.
They are not required to appear in balanced pairs They are not required to appear in balanced pairs
o There is an unknown header field (matching extension-header) with o There is an unknown header field (matching extension-header) with
non-alphanum token characters in its name and a UTF8-NONASCII non-alphanum token characters in its name and a UTF8-NONASCII
value value
If this unusual URI has been defined at a proxy, the proxy will If this unusual URI has been defined at a proxy, the proxy will
forward this request normally. Otherwise a proxy will generate a 404. forward this request normally. Otherwise a proxy will generate a
Endpoints will generate a 501 listing the methods they understand in 404. Endpoints will generate a 501 listing the methods they
an Allow header field. understand in an Allow header field.
Message Details : intmeth Message Details : intmeth
<allOneLine> <allOneLine>
!interesting-Method0123456789_*+`.%indeed'~ !interesting-Method0123456789_*+`.%indeed'~
sip:1_unusual.URI~(to-be!sure)&isn't+it$/crazy?,/;;* sip:1_unusual.URI~(to-be!sure)&isn't+it$/crazy?,/;;*
:&it+has=1,weird!*pas$wo~d_too.(doesn't-it) :&it+has=1,weird!*pas$wo~d_too.(doesn't-it)
@example.com SIP/2.0 @example.com SIP/2.0
</allOneLine> </allOneLine>
Via: SIP/2.0/TCP host1.example.com;branch=z9hG4bK-.!%66*_+`'~ Via: SIP/2.0/TCP host1.example.com;branch=z9hG4bK-.!%66*_+`'~
skipping to change at page 9, line 33 skipping to change at page 9, line 25
To: "BEL:\<hex>07</hex> NUL:\<hex>00</hex> DEL:\<hex>7F</hex>" To: "BEL:\<hex>07</hex> NUL:\<hex>00</hex> DEL:\<hex>7F</hex>"
<sip:1_unusual.URI~(to-be!sure)&isn't+it$/crazy?,/;;* <sip:1_unusual.URI~(to-be!sure)&isn't+it$/crazy?,/;;*
@example.com> @example.com>
</allOneLine> </allOneLine>
<allOneLine> <allOneLine>
From: token1~` token2'+_ token3*%!.- <sip:mundane@example.com> From: token1~` token2'+_ token3*%!.- <sip:mundane@example.com>
;fromParam''~+*_!.-%= ;fromParam''~+*_!.-%=
"<hex>D180D0B0D0B1D0BED182D0B0D18ED189D0B8D0B9</hex>" "<hex>D180D0B0D0B1D0BED182D0B0D18ED189D0B8D0B9</hex>"
;tag=_token~1'+`*%!-. ;tag=_token~1'+`*%!-.
</allOneLine> </allOneLine>
Call-ID: word%ZK-!.*_+'@word`~)(><:\/"][?}{ Call-ID: intmeth.word%ZK-!.*_+'@word`~)(><:\/"][?}{
CSeq: 139122385 !interesting-Method0123456789_*+`.%indeed'~ CSeq: 139122385 !interesting-Method0123456789_*+`.%indeed'~
Max-Forwards: 255 Max-Forwards: 255
<allOneLine> <allOneLine>
extensionHeader-!.%*+_`'~: extensionHeader-!.%*+_`'~:
<hex>EFBBBFE5A4A7E5819CE99BBB</hex> <hex>EFBBBFE5A4A7E5819CE99BBB</hex>
</allOneLine> </allOneLine>
Content-Length: 0 Content-Length: 0
3.1.1.3 Valid use of the % escaping mechanism 3.1.1.3 Valid use of the % escaping mechanism
skipping to change at page 9, line 47 skipping to change at page 9, line 39
extensionHeader-!.%*+_`'~: extensionHeader-!.%*+_`'~:
<hex>EFBBBFE5A4A7E5819CE99BBB</hex> <hex>EFBBBFE5A4A7E5819CE99BBB</hex>
</allOneLine> </allOneLine>
Content-Length: 0 Content-Length: 0
3.1.1.3 Valid use of the % escaping mechanism 3.1.1.3 Valid use of the % escaping mechanism
This INVITE exercises the % HEX HEX escaping mechanism in several This INVITE exercises the % HEX HEX escaping mechanism in several
places. The request is syntactically valid. Interesting features places. The request is syntactically valid. Interesting features
include: include:
o The request-URI has sips:user@example.com embedded in its o The request-URI has sips:user@example.com embedded in its
userpart. What that might mean to example.net is beyond the scope userpart. What that might mean to example.net is beyond the scope
of this document. of this document.
o The From and To URIs have escaped characters in their userparts. o The From and To URIs have escaped characters in their userparts.
o The Contact URI has escaped characters in the URI parameters.
o The Contact URI has escaped characters in the URI parameters. Note Note that the "name" uri-parameter has a value of "value%41" which
that the "name" uri-parameter has a value of "value%41" which is is NOT equivalent to "valueA". Per [RFC2396], unescaping URI
NOT equivalent to "valueA". Per [RFC2396], unescaping URI
components is never performed recursively. components is never performed recursively.
A parser must accept this as a well-formed message. The application A parser must accept this as a well-formed message. The application
using the message must treat the % HEX HEX expansions as equivalent using the message must treat the % HEX HEX expansions as equivalent
to the character being encoded. The application must not try to to the character being encoded. The application must not try to
interpret % as an escape character in those places where % HEX HEX interpret % as an escape character in those places where % HEX HEX
("escaped" in the grammar) is not a valid part of the construction. ("escaped" in the grammar) is not a valid part of the construction.
In [RFC3261], "escaped" only occurs in the expansions of SIP-URI, In [RFC3261], "escaped" only occurs in the expansions of SIP-URI,
SIPS-URI, and Reason-Phrase SIPS-URI, and Reason-Phrase
Message Details : esc01 Message Details : esc01
INVITE sip:sips%3Auser%40example.com@example.net SIP/2.0 INVITE sip:sips%3Auser%40example.com@example.net SIP/2.0
To: sip:%75se%72@example.com To: sip:%75se%72@example.com
From: <sip:I%20have%20spaces@example.net>;tag=938 From: <sip:I%20have%20spaces@example.net>;tag=938
Max-Forwards: 87 Max-Forwards: 87
i: 239409asdfakjkn23onasd0-3234 i: esc01.239409asdfakjkn23onasd0-3234
CSeq: 234234 INVITE CSeq: 234234 INVITE
Via: SIP/2.0/UDP host5.example.net;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP host5.example.net;branch=z9hG4bKkdjuw
C: application/sdp C: application/sdp
Contact: Contact:
<sip:cal%6Cer@host5.example.net;%6C%72;n%61me=v%61lue%25%34%31> <sip:cal%6Cer@host5.example.net;%6C%72;n%61me=v%61lue%25%34%31>
Content-Length: 151 Content-Length: 151
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.1 o=mhandley 29739 7272939 IN IP4 192.0.2.1
s=- s=-
skipping to change at page 11, line 11 skipping to change at page 10, line 46
message. Implementations must take special care when unescaping the message. Implementations must take special care when unescaping the
AOR in this request to not prematurely shorten the username. This AOR in this request to not prematurely shorten the username. This
request registers two distinct contact URIs. request registers two distinct contact URIs.
Message Details : escnull Message Details : escnull
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
To: sip:null-%00-null@example.com To: sip:null-%00-null@example.com
From: sip:null-%00-null@example.com;tag=839923423 From: sip:null-%00-null@example.com;tag=839923423
Max-Forwards: 70 Max-Forwards: 70
Call-ID: 39203ndfvkjdasfkq3w4otrq0adsfdfnavd Call-ID: escnull.39203ndfvkjdasfkq3w4otrq0adsfdfnavd
CSeq: 14398234 REGISTER CSeq: 14398234 REGISTER
Via: SIP/2.0/UDP host5.example.com;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP host5.example.com;branch=z9hG4bKkdjuw
Contact: <sip:%00@host5.example.com> Contact: <sip:%00@host5.example.com>
Contact: <sip:%00%00@host5.example.com> Contact: <sip:%00%00@host5.example.com>
L:0 L:0
3.1.1.5 Use of % when it is not an escape 3.1.1.5 Use of % when it is not an escape
Most of the places % can appear in a SIP message, it is not an escape Most of the places % can appear in a SIP message, it is not an escape
character. This can surprise the unwary implementor. The following character. This can surprise the unwary implementor. The following
skipping to change at page 11, line 42 skipping to change at page 11, line 27
A parser should accept this message as well formed. A proxy would A parser should accept this message as well formed. A proxy would
forward or reject the message depending on what the Request-URI meant forward or reject the message depending on what the Request-URI meant
to it. An endpoint would reject this message with a 501. to it. An endpoint would reject this message with a 501.
Message Details : esc02 Message Details : esc02
RE%47IST%45R sip:registrar.example.com SIP/2.0 RE%47IST%45R sip:registrar.example.com SIP/2.0
To: "%Z%45" <sip:resource@example.com> To: "%Z%45" <sip:resource@example.com>
From: "%Z%45" <sip:resource@example.com>;tag=f232jadfj23 From: "%Z%45" <sip:resource@example.com>;tag=f232jadfj23
Call-ID: asdfnqwo34rq23i34jrjasdcnl23nrlknsdf Call-ID: esc02.asdfnqwo34rq23i34jrjasdcnl23nrlknsdf
Via: SIP/2.0/TCP host.example.com;branch=z9hG4bK209%fzsnel234 Via: SIP/2.0/TCP host.example.com;branch=z9hG4bK209%fzsnel234
CSeq: 29344 RE%47IST%45R CSeq: 29344 RE%47IST%45R
Max-Forwards: 70 Max-Forwards: 70
Contact: <sip:alias1@host1.example.com> Contact: <sip:alias1@host1.example.com>
C%6Fntact: <sip:alias2@host2.example.com> C%6Fntact: <sip:alias2@host2.example.com>
Contact: <sip:alias3@host3.example.com> Contact: <sip:alias3@host3.example.com>
l: 0 l: 0
3.1.1.6 Message with no LWS between display name and < 3.1.1.6 Message with no LWS between display name and <
skipping to change at page 12, line 19 skipping to change at page 12, line 11
in the From header field value. This has been identified as a in the From header field value. This has been identified as a
specification bug that will be removed when RFC 3261 is revised. specification bug that will be removed when RFC 3261 is revised.
Elements should accept this request as well formed. Elements should accept this request as well formed.
Message Details : lwsdisp Message Details : lwsdisp
OPTIONS sip:user@example.com SIP/2.0 OPTIONS sip:user@example.com SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: "caller"<sip:caller@example.com>;tag=323 From: "caller"<sip:caller@example.com>;tag=323
Max-Forwards: 70 Max-Forwards: 70
Call-ID: 1234abcd@funky.example.com Call-ID: lwsdisp.1234abcd@funky.example.com
CSeq: 60 OPTIONS CSeq: 60 OPTIONS
Via: SIP/2.0/UDP funky.example.com;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP funky.example.com;branch=z9hG4bKkdjuw
l: 0 l: 0
3.1.1.7 Long values in header fields 3.1.1.7 Long values in header fields
This well-formed request contains header fields with many values and This well-formed request contains header fields with many values and
values that are very long. Features include: values that are very long. Features include:
o The To header field has a long display name, and long uri o The To header field has a long display name, and long uri
parameter names and values parameter names and values
o The From header field has long header parameter names and values, o The From header field has long header parameter names and values,
in particular a very long tag in particular a very long tag
o The Call-ID is one long token o The Call-ID is one long token
Message Details : longreq Message Details : longreq
INVITE sip:user@example.com SIP/2.0 INVITE sip:user@example.com SIP/2.0
<allOneLine> <allOneLine>
To: "I have a user name of To: "I have a user name of
<repeat count=10>extreme</repeat> proportion" <repeat count=10>extreme</repeat> proportion"
<sip:user@example.com:6000; <sip:user@example.com:6000;
unknownparam1=very<repeat count=20>long</repeat>value; unknownparam1=very<repeat count=20>long</repeat>value;
skipping to change at page 13, line 4 skipping to change at page 12, line 39
<allOneLine> <allOneLine>
To: "I have a user name of To: "I have a user name of
<repeat count=10>extreme</repeat> proportion" <repeat count=10>extreme</repeat> proportion"
<sip:user@example.com:6000; <sip:user@example.com:6000;
unknownparam1=very<repeat count=20>long</repeat>value; unknownparam1=very<repeat count=20>long</repeat>value;
longparam<repeat count=25>name</repeat>=shortvalue; longparam<repeat count=25>name</repeat>=shortvalue;
very<repeat count=25>long</repeat>ParameterNameWithNoValue> very<repeat count=25>long</repeat>ParameterNameWithNoValue>
</allOneLine> </allOneLine>
<allOneLine> <allOneLine>
F: sip: F: sip:
<repeat count=5>amazinglylongcallername</repeat>@example.net <repeat count=5>amazinglylongcallername</repeat>@example.net
;tag=12<repeat count=50>982</repeat>424 ;tag=12<repeat count=50>982</repeat>424
;unknownheaderparam<repeat count=20>name</repeat>= ;unknownheaderparam<repeat count=20>name</repeat>=
unknowheaderparam<repeat count=15>value</repeat> unknowheaderparam<repeat count=15>value</repeat>
;unknownValueless<repeat count=10>paramname</repeat> ;unknownValueless<repeat count=10>paramname</repeat>
</allOneLine> </allOneLine>
Call-ID: one<repeat count=20>really</repeat>longcallid Call-ID: longreq.one<repeat count=20>really</repeat>longcallid
CSeq: 3882340 INVITE CSeq: 3882340 INVITE
<allOneLine> <allOneLine>
Unknown-<repeat count=20>Long</repeat>-Name: Unknown-<repeat count=20>Long</repeat>-Name:
unknown-<repeat count=20>long</repeat>-value; unknown-<repeat count=20>long</repeat>-value;
unknown-<repeat count=20>long</repeat>-parameter-name = unknown-<repeat count=20>long</repeat>-parameter-name =
unknown-<repeat count=20>long</repeat>-parameter-value unknown-<repeat count=20>long</repeat>-parameter-value
</allOneLine> </allOneLine>
Via: SIP/2.0/TCP sip33.example.com Via: SIP/2.0/TCP sip33.example.com
v: SIP/2.0/TCP sip32.example.com v: SIP/2.0/TCP sip32.example.com
V: SIP/2.0/TCP sip31.example.com V: SIP/2.0/TCP sip31.example.com
skipping to change at page 14, line 45 skipping to change at page 15, line 11
request normally and ignore the extra bits that look like an INVITE request normally and ignore the extra bits that look like an INVITE
request. If the element is a proxy choosing to forward the REGISTER, request. If the element is a proxy choosing to forward the REGISTER,
the INVITE octets would not appear in the forwarded request. the INVITE octets would not appear in the forwarded request.
Message Details : dblreq Message Details : dblreq
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
To: sip:j.user@example.com To: sip:j.user@example.com
From: sip:j.user@example.com;tag=43251j3j324 From: sip:j.user@example.com;tag=43251j3j324
Max-Forwards: 8 Max-Forwards: 8
I: 0ha0isndaksdj99sdfafnl3lk233412 I: dblreq.0ha0isndaksdj99sdfafnl3lk233412
Contact: sip:j.user@host.example.com Contact: sip:j.user@host.example.com
CSeq: 8 REGISTER CSeq: 8 REGISTER
Via: SIP/2.0/UDP 192.0.2.125;branch=z9hG4bKkdjuw23492 Via: SIP/2.0/UDP 192.0.2.125;branch=z9hG4bKkdjuw23492
Content-Length: 0 Content-Length: 0
INVITE sip:joe@example.com SIP/2.0 INVITE sip:joe@example.com SIP/2.0
t: sip:joe@example.com t: sip:joe@example.com
From: sip:caller@example.net;tag=141334 From: sip:caller@example.net;tag=141334
Max-Forwards: 8 Max-Forwards: 8
Call-ID: 0ha0isnda977644900765@192.0.2.15 Call-ID: dblreq.0ha0isnda977644900765@192.0.2.15
CSeq: 8 INVITE CSeq: 8 INVITE
Via: SIP/2.0/UDP 192.0.2.15;branch=z9hG4bKkdjuw380234 Via: SIP/2.0/UDP 192.0.2.15;branch=z9hG4bKkdjuw380234
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: 151 Content-Length: 151
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.15 o=mhandley 29739 7272939 IN IP4 192.0.2.15
s=- s=-
c=IN IP4 192.0.2.15 c=IN IP4 192.0.2.15
t=0 0 t=0 0
skipping to change at page 15, line 37 skipping to change at page 16, line 11
symbol). Receiving elements will accept this as a well formed symbol). Receiving elements will accept this as a well formed
message. The Request-URI will parse such that the user part is message. The Request-URI will parse such that the user part is
"user;par=u@example.net". "user;par=u@example.net".
Message Details : semiuri Message Details : semiuri
OPTIONS sip:user;par=u%40example.net@example.com SIP/2.0 OPTIONS sip:user;par=u%40example.net@example.com SIP/2.0
To: sip:j_user@example.com To: sip:j_user@example.com
From: sip:caller@example.org;tag=33242 From: sip:caller@example.org;tag=33242
Max-Forwards: 3 Max-Forwards: 3
Call-ID: 0ha0isndaksdj Call-ID: semiuri.0ha0isndaksdj
CSeq: 8 OPTIONS CSeq: 8 OPTIONS
Accept: application/sdp, application/pkcs7-mime, Accept: application/sdp, application/pkcs7-mime,
multipart/mixed, multipart/signed, multipart/mixed, multipart/signed,
message/sip, message/sipfrag message/sip, message/sipfrag
Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKkdjuw
l: 0 l: 0
3.1.1.10 Varied and unknown transport types 3.1.1.10 Varied and unknown transport types
This request contains Via header field values with all known This request contains Via header field values with all known
skipping to change at page 16, line 15 skipping to change at page 16, line 33
Parsers must accept this message as well formed. Elements receiving Parsers must accept this message as well formed. Elements receiving
this message would process it exactly as if the 2nd and subsequent this message would process it exactly as if the 2nd and subsequent
header field values specified UDP (or other transport). header field values specified UDP (or other transport).
Message Details : transports Message Details : transports
OPTIONS sip:user@example.com SIP/2.0 OPTIONS sip:user@example.com SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: <sip:caller@example.com>;tag=323 From: <sip:caller@example.com>;tag=323
Max-Forwards: 70 Max-Forwards: 70
Call-ID: nfc9ehfdfaekijh4akdnaqjkwendsasfdj Call-ID: transports.kijh4akdnaqjkwendsasfdj
Accept: application/sdp Accept: application/sdp
CSeq: 60 OPTIONS CSeq: 60 OPTIONS
Via: SIP/2.0/UDP t1.example.com;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP t1.example.com;branch=z9hG4bKkdjuw
Via: SIP/2.0/SCTP t2.example.com;branch=z9hG4bKklasjdhf Via: SIP/2.0/SCTP t2.example.com;branch=z9hG4bKklasjdhf
Via: SIP/2.0/TLS t3.example.com;branch=z9hG4bK2980unddj Via: SIP/2.0/TLS t3.example.com;branch=z9hG4bK2980unddj
Via: SIP/2.0/UNKNOWN t4.example.com;branch=z9hG4bKasd0f3en Via: SIP/2.0/UNKNOWN t4.example.com;branch=z9hG4bKasd0f3en
Via: SIP/2.0/TCP t5.example.com;branch=z9hG4bK0a9idfnee Via: SIP/2.0/TCP t5.example.com;branch=z9hG4bK0a9idfnee
l: 0 l: 0
3.1.1.11 S/MIME signed message 3.1.1.11 S/MIME signed message
This is a signed INVITE request. The signature is binary encoded. The This is a signed INVITE request. The signature is binary encoded.
body contains null (0x00) characters. Receivers must take care to The body contains null (0x00) characters. Receivers must take care
properly frame the received message. to properly frame the received message.
Parsers must accept this message as well formed, even if the Parsers must accept this message as well formed, even if the
application above the parser does not support multipart/signed. application above the parser does not support multipart/signed.
Message Details : smime01 Message Details : smime01
INVITE sip:receiver@example.com SIP/2.0 INVITE sip:receiver@example.com SIP/2.0
Via: SIP/2.0/UDP host5.example.org;branch=z9hG4bK923rnasdkl3 Via: SIP/2.0/UDP host5.example.org;branch=z9hG4bK923rnasdkl3
To: <sip:receiver@example.com> To: <sip:receiver@example.com>
From: <sip:sender@example.org>;tag=2390234seiu3 From: <sip:sender@example.org>;tag=2390234seiu3
Call-ID: afnkjeriuoqeiuavnklafekjq34iu43uawe Call-ID: smime01.uoqeiuavnklafekjq34iu43uawe
CSeq: 282398492 INVITE CSeq: 282398492 INVITE
Max-Forwards: 70 Max-Forwards: 70
Contact: <sip:sender@host5.example.org> Contact: <sip:sender@host5.example.org>
Content-Length: 3134 Content-Length: 3134
Content-Type: multipart/signed; Content-Type: multipart/signed;
protocol="application/pkcs-7-signature"; protocol="application/pkcs-7-signature";
micalg=sha1; micalg=sha1;
boundary="----34CF59C076641DD0879594444157C7EB" boundary="----EABF38A0AAE8704C560F10418BA807CF"
------34CF59C076641DD0879594444157C7EB
------EABF38A0AAE8704C560F10418BA807CF
Content-Type: message/sip Content-Type: message/sip
INVITE sip:receiver@example.com SIP/2.0 INVITE sip:receiver@example.com SIP/2.0
Via: SIP/2.0/UDP host5.example.org;branch=z9hG4bK923rnasdkl3 Via: SIP/2.0/UDP host5.example.org;branch=z9hG4bK923rnasdkl3
To: <sip:receiver@example.com> To: <sip:receiver@example.com>
From: <sip:sender@example.org>;tag=2390234seiu3 From: <sip:sender@example.org>;tag=2390234seiu3
Call-ID: afnkjeriuoqeiuavnklafekjq34iu43uawe Call-ID: smime01.uoqeiuavnklafekjq34iu43uawe
CSeq: 282398492 INVITE CSeq: 282398492 INVITE
Max-Forwards: 70 Max-Forwards: 70
Contact: <sip:sender@host5.example.org> Contact: <sip:sender@host5.example.org>
Accept: application/sdp, application/pkcs7-mime, Accept: application/sdp, application/pkcs7-mime,
multipart/mixed, multipart/signed, multipart/mixed, multipart/signed,
message/sip, message/sipfrag message/sip, message/sipfrag
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: 149 Content-Length: 149
v=0 v=0
o=sender 29739 7272939 IN IP4 192.0.2.1 o=sender 29739 7272939 IN IP4 192.0.2.1
s=- s=-
c=IN IP4 192.0.2.1 c=IN IP4 192.0.2.1
t=0 0 t=0 0
m=audio 492170 RTP/AVP 0 12 m=audio 492170 RTP/AVP 0 12
m=video 3227 RTP/AVP 31 m=video 3227 RTP/AVP 31
a=rtpmap:31 LPC a=rtpmap:31 LPC
------34CF59C076641DD0879594444157C7EB ------EABF38A0AAE8704C560F10418BA807CF
Content-Type: application/pkcs-7-signature; name="smime.p7s" Content-Type: application/pkcs-7-signature; name="smime.p7s"
Content-Transfer-Encoding: binary Content-Transfer-Encoding: binary
Content-Disposition: attachment; filename="smime.p7s" Content-Disposition: attachment; filename="smime.p7s"
<hex>3082088806092A86 <hex>3082088806092A86
4886F70D010702A082087930820875020101310B300906052B0E03021A050030 4886F70D010702A082087930820875020101310B300906052B0E03021A050030
0B06092A864886F70D010701A082067A30820339308202A2A003020102020800 0B06092A864886F70D010701A082067A30820339308202A2A003020102020800
90008902240001300D06092A864886F70D01010505003070310B300906035504 90008902240001300D06092A864886F70D01010505003070310B300906035504
0613025553311330110603550408130A43616C69666F726E69613111300F0603 0613025553311330110603550408130A43616C69666F726E69613111300F0603
550407130853616E4A6F7365310E300C060355040A1305736970697431293027 550407130853616E4A6F7365310E300C060355040A1305736970697431293027
skipping to change at page 18, line 46 skipping to change at page 19, line 17
0D06092A864886F70D0101050500038181006FFE1A3B5CE807C3DD2CFDF6E978 0D06092A864886F70D0101050500038181006FFE1A3B5CE807C3DD2CFDF6E978
7F491C84DBF7DCD11DB2D6A8887D2FE3F22E9C6894994282E50AA0DFFE1CBD4E 7F491C84DBF7DCD11DB2D6A8887D2FE3F22E9C6894994282E50AA0DFFE1CBD4E
C2C20217831FC2AD360FF1C0DE1DE1E870102CFA99EE504C7DC0D8752A63294A C2C20217831FC2AD360FF1C0DE1DE1E870102CFA99EE504C7DC0D8752A63294A
C748DDDEFADE55C6D051F1CD54CFE7C153278962A53CEF61B875C1FD3C74E972 C748DDDEFADE55C6D051F1CD54CFE7C153278962A53CEF61B875C1FD3C74E972
242CBA0131B3B8C607BF95B378212CA9A75E318201D6308201D2020101307C30 242CBA0131B3B8C607BF95B378212CA9A75E318201D6308201D2020101307C30
70310B3009060355040613025553311330110603550408130A43616C69666F72 70310B3009060355040613025553311330110603550408130A43616C69666F72
6E69613111300F0603550407130853616E4A6F7365310E300C060355040A1305 6E69613111300F0603550407130853616E4A6F7365310E300C060355040A1305
736970697431293027060355040B135369706974546573744365727469666963 736970697431293027060355040B135369706974546573744365727469666963
617465417574686F7269747902080090008902240001300906052B0E03021A05 617465417574686F7269747902080090008902240001300906052B0E03021A05
00A081B1301806092A864886F70D010903310B06092A864886F70D010701301C 00A081B1301806092A864886F70D010903310B06092A864886F70D010701301C
06092A864886F70D010905310F170D3033313032323135323930325A30230609 06092A864886F70D010905310F170D3034303731343230333630375A30230609
2A864886F70D010904311604144A2FD5856B6006413209FA56A0C1D85179DBCB 2A864886F70D010904311604142830DBEDC758BAA9750138384431E8F1819717
5F305206092A864886F70D01090F31453043300A06082A864886F70D0307300E C8305206092A864886F70D01090F31453043300A06082A864886F70D0307300E
06082A864886F70D030202020080300D06082A864886F70D0302020140300706 06082A864886F70D030202020080300D06082A864886F70D0302020140300706
052B0E030207300D06082A864886F70D0302020128300D06092A864886F70D01 052B0E030207300D06082A864886F70D0302020128300D06092A864886F70D01
01010500048180C1C3193CF4A8BE1278B5529ACFA1C51DDEDECF0D3DC4C18FC5 0101050004818060FF00161CFAC1E641D0C993FACD949DC239F9DDF527F834A6
9A5B120E6D559F4953A3C3C7C97B4EAD8388F1508F7AD2FC71CC7B9ED2844789 ECF837B5D2C7B756F30A2755F5EF7A833351721F30A4392921E0A73594AA0BF2
60A3ECF87984E25A15B4AB63F150C30570B6315A2327E381EE11E866DC1405DA 4E6BD3981362DEA4F22844CB505ED3C6C0CCADD524066593ABED4023243055CA
29E74CC20201816F1516DD893332D9A8E26FBAEC237C494F3EFAEF4EBCD2122C 0CE0AE83F13868E29E91E3AA588BDC11B2A18F39001885E17879503523699A87
DE7D57DECD</hex>------34CF59C076641DD0879594444157C7EB-- 982C6D48D4918A</hex>------EABF38A0AAE8704C560F10418BA807CF--
3.1.1.12 Unusual reason phrase 3.1.1.12 Unusual reason phrase
This 200 response contains a reason phrase other than "OK". The This 200 response contains a reason phrase other than "OK". The
reason phrase is intended for human consumption, and may contain any reason phrase is intended for human consumption, and may contain any
string produced by string produced by
Reason-Phrase = *(reserved / unreserved / escaped Reason-Phrase = *(reserved / unreserved / escaped
/ UTF8-NONASCII / UTF8-CONT / SP / HTAB) / UTF8-NONASCII / UTF8-CONT / SP / HTAB)
skipping to change at page 19, line 31 skipping to change at page 20, line 14
Message Details : unreason Message Details : unreason
<allOneLine> <allOneLine>
SIP/2.0 200 = 2**3 * 5**2 <hex>D0BDD0BE20D181D182 SIP/2.0 200 = 2**3 * 5**2 <hex>D0BDD0BE20D181D182
D0BE20D0B4D0B5D0B2D18FD0BDD0BED181D182D0BE20D0B4 D0BE20D0B4D0B5D0B2D18FD0BDD0BED181D182D0BE20D0B4
D0B5D0B2D18FD182D18C202D20D0BFD180D0BED181D182D0 D0B5D0B2D18FD182D18C202D20D0BFD180D0BED181D182D0
BED0B5</hex> BED0B5</hex>
</allOneLine> </allOneLine>
Via: SIP/2.0/UDP 192.0.2.198;branch=z9hG4bK1324923 Via: SIP/2.0/UDP 192.0.2.198;branch=z9hG4bK1324923
Call-ID: 0384840201234ksdfak3j2erwedfsASdf Call-ID: unreason.1234ksdfak3j2erwedfsASdf
CSeq: 35 INVITE CSeq: 35 INVITE
From: sip:user@example.com;tag=11141343 From: sip:user@example.com;tag=11141343
To: sip:user@example.edu;tag=2229 To: sip:user@example.edu;tag=2229
Content-Length: 159 Content-Length: 159
Content-Type: application/sdp Content-Type: application/sdp
Contact: <sip:user@host198.example.com> Contact: <sip:user@host198.example.com>
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.198 o=mhandley 29739 7272939 IN IP4 192.0.2.198
s=- s=-
skipping to change at page 20, line 16 skipping to change at page 20, line 42
This well formed response contains no reason phrase. A parser must This well formed response contains no reason phrase. A parser must
accept this message. The space character after the reason code is accept this message. The space character after the reason code is
required. If it were not present, this message could be rejected as required. If it were not present, this message could be rejected as
invalid (a liberal receiver would accept it anyway). invalid (a liberal receiver would accept it anyway).
Message Details : noreason Message Details : noreason
SIP/2.0 100<hex>20</hex> SIP/2.0 100<hex>20</hex>
Via: SIP/2.0/UDP 192.0.2.105;branch=z9hG4bK2398ndaoe Via: SIP/2.0/UDP 192.0.2.105;branch=z9hG4bK2398ndaoe
Call-ID: adsn2309jasndj203insdf99223ndf Call-ID: noreason.asndj203insdf99223ndf
CSeq: 35 INVITE CSeq: 35 INVITE
From: <sip:user@example.com>;tag=39ansfi3 From: <sip:user@example.com>;tag=39ansfi3
To: <sip:user@example.edu>;tag=902jndnke3 To: <sip:user@example.edu>;tag=902jndnke3
Content-Length: 0 Content-Length: 0
Contact: <sip:user@host105.example.com> Contact: <sip:user@host105.example.com>
3.1.2 Invalid messages 3.1.2 Invalid messages
This section contains several invalid messages reflecting errors seen This section contains several invalid messages reflecting errors seen
at interoperability events and exploring important edge conditions at interoperability events and exploring important edge conditions
that can be induced through malformed messages. This section does not that can be induced through malformed messages. This section does
attempt to be a comprehensive list of all types of invalid messages. not attempt to be a comprehensive list of all types of invalid
messages.
3.1.2.1 Extraneous header field separators 3.1.2.1 Extraneous header field separators
The Via and header field of this request contains contain additional The Via and header field of this request contains contain additional
semicolons and commas without parameters or values. The Contact semicolons and commas without parameters or values. The Contact
header field contains additional semicolons without parameters. This header field contains additional semicolons without parameters. This
message is syntactically invalid. message is syntactically invalid.
An element receiving this request should respond with a 400 Bad An element receiving this request should respond with a 400 Bad
Request error. Request error.
Message Details : badinv01 Message Details : badinv01
INVITE sip:user@example.com SIP/2.0 INVITE sip:user@example.com SIP/2.0
To: sip:j.user@example.com To: sip:j.user@example.com
From: sip:caller@example.net;tag=134161461246 From: sip:caller@example.net;tag=134161461246
Max-Forwards: 7 Max-Forwards: 7
Call-ID: 0ha0isndaksdjasdf3234nas Call-ID: badinv01.0ha0isndaksdjasdf3234nas
CSeq: 8 INVITE CSeq: 8 INVITE
Via: SIP/2.0/UDP 192.0.2.15;;,;,, Via: SIP/2.0/UDP 192.0.2.15;;,;,,
Contact: "Joe" <sip:joe@example.org>;;;; Contact: "Joe" <sip:joe@example.org>;;;;
Content-Length: 153 Content-Length: 153
Content-Type: application/sdp Content-Type: application/sdp
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.15 o=mhandley 29739 7272939 IN IP4 192.0.2.15
s=- s=-
c=IN IP4 192.0.2.15 c=IN IP4 192.0.2.15
skipping to change at page 21, line 33 skipping to change at page 22, line 15
you can do but wait for more data on the stream and close the you can do but wait for more data on the stream and close the
connection if none is forthcoming in a reasonable period of time. connection if none is forthcoming in a reasonable period of time.
Message Details : clerr Message Details : clerr
INVITE sip:user@example.com SIP/2.0 INVITE sip:user@example.com SIP/2.0
Max-Forwards: 80 Max-Forwards: 80
To: sip:j.user@example.com To: sip:j.user@example.com
From: sip:caller@example.net;tag=93942939o2 From: sip:caller@example.net;tag=93942939o2
Contact: <sip:caller@hungry.example.net> Contact: <sip:caller@hungry.example.net>
Call-ID: 0ha0isndaksdjweiafasdk3 Call-ID: clerr.0ha0isndaksdjweiafasdk3
CSeq: 8 INVITE CSeq: 8 INVITE
Via: SIP/2.0/UDP host5.example.com;branch=z9hG4bK-39234-23523 Via: SIP/2.0/UDP host5.example.com;branch=z9hG4bK-39234-23523
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: 9999 Content-Length: 9999
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.155 o=mhandley 29739 7272939 IN IP4 192.0.2.155
s=- s=-
c=IN IP4 192.0.2.155 c=IN IP4 192.0.2.155
t=0 0 t=0 0
skipping to change at page 22, line 29 skipping to change at page 23, line 11
choose for converting this ascii field into an integral form can choose for converting this ascii field into an integral form can
return a negative value. In particular, the result must not be used return a negative value. In particular, the result must not be used
as a counter or array index. as a counter or array index.
Message Details : ncl Message Details : ncl
INVITE sip:user@example.com SIP/2.0 INVITE sip:user@example.com SIP/2.0
Max-Forwards: 254 Max-Forwards: 254
To: sip:j.user@example.com To: sip:j.user@example.com
From: sip:caller@example.net;tag=32394234 From: sip:caller@example.net;tag=32394234
Call-ID: 0ha0isndaksdj2193423r542w35 Call-ID: ncl.0ha0isndaksdj2193423r542w35
CSeq: 0 INVITE CSeq: 0 INVITE
Via: SIP/2.0/UDP 192.0.2.53;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP 192.0.2.53;branch=z9hG4bKkdjuw
Contact: <sip:caller@example53.example.net> Contact: <sip:caller@example53.example.net>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: -999 Content-Length: -999
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.53 o=mhandley 29739 7272939 IN IP4 192.0.2.53
s=- s=-
c=IN IP4 192.0.2.53 c=IN IP4 192.0.2.53
skipping to change at page 22, line 49 skipping to change at page 23, line 31
c=IN IP4 192.0.2.53 c=IN IP4 192.0.2.53
t=0 0 t=0 0
m=audio 492170 RTP/AVP 0 12 m=audio 492170 RTP/AVP 0 12
m=video 3227 RTP/AVP 31 m=video 3227 RTP/AVP 31
a=rtpmap:31 LPC a=rtpmap:31 LPC
3.1.2.4 Request scalar fields with overlarge values 3.1.2.4 Request scalar fields with overlarge values
This request contains several scalar header field values outside This request contains several scalar header field values outside
their legal range. their legal range.
o the CSeq sequence number is >2**32-1. o the CSeq sequence number is >2**32-1.
o the Max-Forwards value is >255. o the Max-Forwards value is >255.
o the Expires value is >2**32-1. o the Expires value is >2**32-1.
o the Contact expires parameter value is >2**32-1. o the Contact expires parameter value is >2**32-1.
An element receiving this request should respond with a 400 Bad An element receiving this request should respond with a 400 Bad
Request due to the CSeq error. If only the Max-Forwards field were in Request due to the CSeq error. If only the Max-Forwards field were
error, the element could choose process the request as if the field in error, the element could choose process the request as if the
were absent. If only the expiry values were in error, the element field were absent. If only the expiry values were in error, the
could treat them as if they contained the default values for element could treat them as if they contained the default values for
expiration (3600 in this case). expiration (3600 in this case).
Other scalar request fields that may contain aberrant values include, Other scalar request fields that may contain aberrant values include,
but are not limited to, the Contact q value, the Timestamp value, but are not limited to, the Contact q value, the Timestamp value,
and the Via ttl parameter. and the Via ttl parameter.
Message Details : scalar02 Message Details : scalar02
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
Via: SIP/2.0/TCP host129.example.com;branch=z9hG4bK342sdfoi3 Via: SIP/2.0/TCP host129.example.com;branch=z9hG4bK342sdfoi3
To: <sip:user@example.com> To: <sip:user@example.com>
From: <sip:user@example.com>;tag=239232jh3 From: <sip:user@example.com>;tag=239232jh3
CSeq: 36893488147419103232 REGISTER CSeq: 36893488147419103232 REGISTER
Call-ID: asdnw3qjr23o0pd9vanlq3wnrlnewofjas9ui32 Call-ID: scalar02.23o0pd9vanlq3wnrlnewofjas9ui32
Max-Forwards: 300 Max-Forwards: 300
Expires: 1<repeat count=100>0</repeat> Expires: 1<repeat count=100>0</repeat>
Contact: <sip:user@host129.example.com> Contact: <sip:user@host129.example.com>
;expires=280297596632815 ;expires=280297596632815
Content-Length: 0 Content-Length: 0
3.1.2.5 Response scalar fields with overlarge values 3.1.2.5 Response scalar fields with overlarge values
This response contains several scalar header field values outside This response contains several scalar header field values outside
their legal range. their legal range.
skipping to change at page 23, line 40 skipping to change at page 24, line 23
Max-Forwards: 300 Max-Forwards: 300
Expires: 1<repeat count=100>0</repeat> Expires: 1<repeat count=100>0</repeat>
Contact: <sip:user@host129.example.com> Contact: <sip:user@host129.example.com>
;expires=280297596632815 ;expires=280297596632815
Content-Length: 0 Content-Length: 0
3.1.2.5 Response scalar fields with overlarge values 3.1.2.5 Response scalar fields with overlarge values
This response contains several scalar header field values outside This response contains several scalar header field values outside
their legal range. their legal range.
o the CSeq sequence number is >2**32-1. o the CSeq sequence number is >2**32-1.
o The Retry-After field is unreasonably large (note that RFC 3261 o The Retry-After field is unreasonably large (note that RFC 3261
does not define a legal range for this field). does not define a legal range for this field).
o The Warning field has a warning-value with more than 3 digits o The Warning field has a warning-value with more than 3 digits
An element receiving this response will simply discard it. An element receiving this response will simply discard it.
Message Details : scalarlg Message Details : scalarlg
SIP/2.0 503 Service Unavailable SIP/2.0 503 Service Unavailable
Via: SIP/2.0/TCP host129.example.com;branch=z0hG4bKzzxdiwo34sw Via: SIP/2.0/TCP host129.example.com;branch=z0hG4bKzzxdiwo34sw
To: <sip:user@example.com> To: <sip:user@example.com>
From: <sip:other@example.net>;tag=2easdjfejw From: <sip:other@example.net>;tag=2easdjfejw
CSeq: 9292394834772304023312 OPTIONS CSeq: 9292394834772304023312 OPTIONS
Call-ID: nvoao34irnoase0of0234hn2qofoaf0232aewf2394r Call-ID: scalarlg.noase0of0234hn2qofoaf0232aewf2394r
Retry-After: 949302838503028349304023988 Retry-After: 949302838503028349304023988
Warning: 1812 overture "In Progress" Warning: 1812 overture "In Progress"
Content-Length: 0 Content-Length: 0
3.1.2.6 Unterminated quoted string in display-name 3.1.2.6 Unterminated quoted string in display-name
This is a request with an unterminated quote in the display name of This is a request with an unterminated quote in the display name of
the To field. An element receiving this request should return an 400 the To field. An element receiving this request should return an 400
Bad Request error. Bad Request error.
skipping to change at page 24, line 32 skipping to change at page 25, line 15
reasonable inference when it encounters reasonable inference when it encounters
To: "Mr J. User <sip:j.user@example.com> <sip:realj@example.net> To: "Mr J. User <sip:j.user@example.com> <sip:realj@example.net>
Message Details : quotbal Message Details : quotbal
INVITE sip:user@example.com SIP/2.0 INVITE sip:user@example.com SIP/2.0
To: "Mr. J. User <sip:j.user@example.com> To: "Mr. J. User <sip:j.user@example.com>
From: sip:caller@example.net;tag=93334 From: sip:caller@example.net;tag=93334
Max-Forwards: 10 Max-Forwards: 10
Call-ID: 0ha0isndaksdj Call-ID: quotbal.aksdj
Contact: <sip:caller@host59.example.net> Contact: <sip:caller@host59.example.net>
CSeq: 8 INVITE CSeq: 8 INVITE
Via: SIP/2.0/UDP 192.0.2.59:5050;branch=z9hG4bKkdjuw39234 Via: SIP/2.0/UDP 192.0.2.59:5050;branch=z9hG4bKkdjuw39234
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: 153 Content-Length: 153
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.15 o=mhandley 29739 7272939 IN IP4 192.0.2.15
s=- s=-
c=IN IP4 192.0.2.15 c=IN IP4 192.0.2.15
skipping to change at page 25, line 12 skipping to change at page 25, line 38
m=video 3227 RTP/AVP 31 m=video 3227 RTP/AVP 31
a=rtpmap:31 LPC a=rtpmap:31 LPC
3.1.2.7 <> enclosing Request-URI 3.1.2.7 <> enclosing Request-URI
This INVITE request is invalid because the Request-URI has been This INVITE request is invalid because the Request-URI has been
enclosed within in "<>". enclosed within in "<>".
It is reasonable to always reject a request with this error with a It is reasonable to always reject a request with this error with a
400 Bad Request. Elements attempting to be liberal with what they 400 Bad Request. Elements attempting to be liberal with what they
accept may choose to ignore the brackets. If the element forwards the accept may choose to ignore the brackets. If the element forwards
request, it must not include the brackets in the messages it sends. the request, it must not include the brackets in the messages it
sends.
Message Details : ltgtruri Message Details : ltgtruri
INVITE <sip:user@example.com> SIP/2.0 INVITE <sip:user@example.com> SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: sip:caller@example.net;tag=39291 From: sip:caller@example.net;tag=39291
Max-Forwards: 23 Max-Forwards: 23
Call-ID: 1@192.0.2.5 Call-ID: ltgtruri.1@192.0.2.5
CSeq: 1 INVITE CSeq: 1 INVITE
Via: SIP/2.0/UDP 192.0.2.5 Via: SIP/2.0/UDP 192.0.2.5
Contact: <sip:caller@host5.example.net> Contact: <sip:caller@host5.example.net>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: 160 Content-Length: 160
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.5 o=mhandley 29739 7272939 IN IP4 192.0.2.5
s=- s=-
c=IN IP4 192.0.2.5 c=IN IP4 192.0.2.5
skipping to change at page 26, line 5 skipping to change at page 27, line 11
An element could attempt to ignore the embedded LWS for those schemes An element could attempt to ignore the embedded LWS for those schemes
(like sip) where that would not introduce ambiguity. (like sip) where that would not introduce ambiguity.
Message Details : lwsruri Message Details : lwsruri
INVITE sip:user@example.com; lr SIP/2.0 INVITE sip:user@example.com; lr SIP/2.0
To: sip:user@example.com;tag=3xfe-9921883-z9f To: sip:user@example.com;tag=3xfe-9921883-z9f
From: sip:caller@example.net;tag=231413434 From: sip:caller@example.net;tag=231413434
Max-Forwards: 5 Max-Forwards: 5
Call-ID: asdfasdoijweoi2323-asdfwern23-asd8ia0swn34rk423 Call-ID: lwsruri.asdfasdoeoi2323-asdfwrn23-asd834rk423
CSeq: 2130706432 INVITE CSeq: 2130706432 INVITE
Via: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bKkdjuw2395 Via: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bKkdjuw2395
Contact: <sip:caller@host1.example.net> Contact: <sip:caller@host1.example.net>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: 160 Content-Length: 160
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.1 o=mhandley 29739 7272939 IN IP4 192.0.2.1
s=- s=-
c=IN IP4 192.0.2.1 c=IN IP4 192.0.2.1
t=3149328700 0 t=3149328700 0
m=audio 492170 RTP/AVP 0 12 m=audio 492170 RTP/AVP 0 12
m=video 3227 RTP/AVP 31 m=video 3227 RTP/AVP 31
a=rtpmap:31 LPC a=rtpmap:31 LPC
3.1.2.9 Multiple SP separating Request-Line elements 3.1.2.9 Multiple SP separating Request-Line elements
This INVITE has illegal multiple SP characters between elements of This INVITE has illegal multiple SP characters between elements of
the start line. the start line.
It is acceptable to reject this request as malformed. An element that It is acceptable to reject this request as malformed. An element
is liberal in what it accepts may ignore these extra SP characters that is liberal in what it accepts may ignore these extra SP
while processing the request. If the element forwards the request, it characters while processing the request. If the element forwards the
must not include these extra SP characters in the messages it sends. request, it must not include these extra SP characters in the
messages it sends.
Message Details : lwsstart Message Details : lwsstart
INVITE sip:user@example.com SIP/2.0 INVITE sip:user@example.com SIP/2.0
Max-Forwards: 8 Max-Forwards: 8
To: sip:user@example.com To: sip:user@example.com
From: sip:caller@example.net;tag=8814 From: sip:caller@example.net;tag=8814
Call-ID: 2304u0qwsdfknq234oi243099adsdfnawe3@example.com Call-ID: lwsstart.dfknq234oi243099adsdfnawe3@example.com
CSeq: 1893884 INVITE CSeq: 1893884 INVITE
Via: SIP/2.0/UDP host1.example.com;branch=z9hG4bKkdjuw3923 Via: SIP/2.0/UDP host1.example.com;branch=z9hG4bKkdjuw3923
Contact: <sip:caller@host1.example.net> Contact: <sip:caller@host1.example.net>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: 151 Content-Length: 151
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.1 o=mhandley 29739 7272939 IN IP4 192.0.2.1
s=- s=-
c=IN IP4 192.0.2.1 c=IN IP4 192.0.2.1
t=0 0 t=0 0
m=audio 492170 RTP/AVP 0 12 m=audio 492170 RTP/AVP 0 12
m=video 3227 RTP/AVP 31 m=video 3227 RTP/AVP 31
a=rtpmap:31 LPC a=rtpmap:31 LPC
3.1.2.10 SP characters at end of Request-Line 3.1.2.10 SP characters at end of Request-Line
This OPTIONS request contains SP characters between the SIP-Version This OPTIONS request contains SP characters between the SIP-Version
field and the CRLF terminating the Request-Line. field and the CRLF terminating the Request-Line.
It is acceptable to reject this request as malformed. An element that It is acceptable to reject this request as malformed. An element
is liberal in what it accepts may ignore these extra SP characters that is liberal in what it accepts may ignore these extra SP
while processing the request. If the element forwards the request, it characters while processing the request. If the element forwards the
must not include these extra SP characters in the messages it sends. request, it must not include these extra SP characters in the
messages it sends.
Message Details : trws Message Details : trws
OPTIONS sip:remote-target@example.com SIP/2.0<hex>2020</hex> OPTIONS sip:remote-target@example.com SIP/2.0<hex>2020</hex>
Via: SIP/2.0/TCP host1.examle.com;branch=z9hG4bK299342093 Via: SIP/2.0/TCP host1.examle.com;branch=z9hG4bK299342093
To: <sip:remote-target@example.com> To: <sip:remote-target@example.com>
From: <sip:local-resource@example.com>;tag=329429089 From: <sip:local-resource@example.com>;tag=329429089
Call-ID: afewroicu34958239neffasdhr2345r Call-ID: trws.oicu34958239neffasdhr2345r
Accept: application/sdp Accept: application/sdp
CSeq: 238923 OPTIONS CSeq: 238923 OPTIONS
Max-Forwards: 70 Max-Forwards: 70
Content-Length: 0 Content-Length: 0
3.1.2.11 Escaped headers in SIP Request-URI 3.1.2.11 Escaped headers in SIP Request-URI
This INVITE is malformed as the SIP Request-URI contains escaped This INVITE is malformed as the SIP Request-URI contains escaped
headers. headers.
It is acceptable for an element to reject this request with a 400 Bad It is acceptable for an element to reject this request with a 400 Bad
Request. An element could choose to be liberal in what it accepts and Request. An element could choose to be liberal in what it accepts
ignore the escaped headers. If the element is a proxy, the escaped and ignore the escaped headers. If the element is a proxy, the
headers must not appear in the Request-URI of forwarded request (and escaped headers must not appear in the Request-URI of forwarded
most certainly must not be translated into the actual header of the request (and most certainly must not be translated into the actual
forwarded request). header of the forwarded request).
Message Details : escruri Message Details : escruri
INVITE sip:user@example.com?Route=%3Csip:example.com%3E SIP/2.0 INVITE sip:user@example.com?Route=%3Csip:example.com%3E SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: sip:caller@example.net;tag=341518 From: sip:caller@example.net;tag=341518
Max-Forwards: 7 Max-Forwards: 7
Contact: <sip:caller@host39923.example.net> Contact: <sip:caller@host39923.example.net>
Call-ID: 23940-asdfhj-aje3br-234q098w-fawerh2q-h4n5 Call-ID: escruri.23940-asdfhj-aje3br-234q098w-fawerh2q-h4n5
CSeq: 149209342 INVITE CSeq: 149209342 INVITE
Via: SIP/2.0/UDP host-of-the-hour.example.com;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP host-of-the-hour.example.com;branch=z9hG4bKkdjuw
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: 151 Content-Length: 151
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.1 o=mhandley 29739 7272939 IN IP4 192.0.2.1
s=- s=-
c=IN IP4 192.0.2.1 c=IN IP4 192.0.2.1
t=0 0 t=0 0
skipping to change at page 28, line 26 skipping to change at page 29, line 48
3.1.2.12 Invalid timezone in Date header field 3.1.2.12 Invalid timezone in Date header field
This INVITE is invalid as it contains a non GMT time zone in the SIP This INVITE is invalid as it contains a non GMT time zone in the SIP
Date header field. Date header field.
It is acceptable to reject this request as malformed (though an It is acceptable to reject this request as malformed (though an
element shouldn't do that unless the contents of the Date header element shouldn't do that unless the contents of the Date header
field were actually important to its processing). An element wishing field were actually important to its processing). An element wishing
to be liberal in what it accepts could ignore this value altogether to be liberal in what it accepts could ignore this value altogether
if it wasn't going to use the Date header field anyhow. Otherwise, it if it wasn't going to use the Date header field anyhow. Otherwise,
could attempt to interpret this date and adjust it to GMT. it could attempt to interpret this date and adjust it to GMT.
RFC 3261 explicitly defines the only acceptable timezone designation RFC 3261 explicitly defines the only acceptable timezone designation
as "GMT". "UT", while synonymous with GMT per [RFC2822], is not as "GMT". "UT", while synonymous with GMT per [RFC2822], is not
valid. "UTC" and "UCT" are also invalid. valid. "UTC" and "UCT" are also invalid.
Message Details : baddate Message Details : baddate
INVITE sip:user@example.com SIP/2.0 INVITE sip:user@example.com SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: sip:caller@example.net;tag=2234923 From: sip:caller@example.net;tag=2234923
Max-Forwards: 70 Max-Forwards: 70
Call-ID: 239423mnsadf3j23lj42--sedfnm234 Call-ID: baddate.239423mnsadf3j23lj42--sedfnm234
CSeq: 1392934 INVITE CSeq: 1392934 INVITE
Via: SIP/2.0/UDP host.example.com;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP host.example.com;branch=z9hG4bKkdjuw
Date: Fri, 01 Jan 2010 16:00:00 EST Date: Fri, 01 Jan 2010 16:00:00 EST
Contact: <sip:caller@host5.example.net> Contact: <sip:caller@host5.example.net>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: 151 Content-Length: 151
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.5 o=mhandley 29739 7272939 IN IP4 192.0.2.5
s=- s=-
skipping to change at page 29, line 26 skipping to change at page 30, line 47
with a 400 Bad Request. An element choosing to be liberal in what it with a 400 Bad Request. An element choosing to be liberal in what it
accepts could infer the angle brackets since there is no ambiguity in accepts could infer the angle brackets since there is no ambiguity in
this example. In general, that won't be possible. this example. In general, that won't be possible.
Message Details : regbadct Message Details : regbadct
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: sip:user@example.com;tag=998332 From: sip:user@example.com;tag=998332
Max-Forwards: 70 Max-Forwards: 70
Call-ID: k345asrl3fdbv@10.0.0.1 Call-ID: regbadct.k345asrl3fdbv@10.0.0.1
CSeq: 1 REGISTER CSeq: 1 REGISTER
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
Contact: sip:user@example.com?Route=%3Csip:sip.example.com%3E Contact: sip:user@example.com?Route=%3Csip:sip.example.com%3E
l: 0 l: 0
3.1.2.14 Spaces within addr-spec 3.1.2.14 Spaces within addr-spec
This request is malformed since the addr-spec in the To header field This request is malformed since the addr-spec in the To header field
contains spaces. Parsers receiving this request must not break. It is contains spaces. Parsers receiving this request must not break. It
reasonable to reject this request with a 400 Bad Request response. is reasonable to reject this request with a 400 Bad Request response.
Elements attempting to be liberal may ignore the spaces. Elements attempting to be liberal may ignore the spaces.
Message Details : badaspec Message Details : badaspec
OPTIONS sip:user@example.org SIP/2.0 OPTIONS sip:user@example.org SIP/2.0
Via: SIP/2.0/UDP host4.example.com:5060;branch=z9hG4bKkdju43234 Via: SIP/2.0/UDP host4.example.com:5060;branch=z9hG4bKkdju43234
Max-Forwards: 70 Max-Forwards: 70
From: "Bell, Alexander" <sip:a.g.bell@example.com>;tag=433423 From: "Bell, Alexander" <sip:a.g.bell@example.com>;tag=433423
To: "Watson, Thomas" < sip:t.watson@example.org > To: "Watson, Thomas" < sip:t.watson@example.org >
Call-ID: sdf0234n2nds0a099u23h3hnnw009cdkne3 Call-ID: badaspec.sdf0234n2nds0a099u23h3hnnw009cdkne3
Accept: application/sdp Accept: application/sdp
CSeq: 3923239 OPTIONS CSeq: 3923239 OPTIONS
l: 0 l: 0
3.1.2.15 Non-token characters in display-name 3.1.2.15 Non-token characters in display-name
This OPTIONS request is malformed since the display names in the To This OPTIONS request is malformed since the display names in the To
and From header fields contain non-token characters but are unquoted. and From header fields contain non-token characters but are unquoted.
It is reasonable to always reject this kind of error with a 400 Bad It is reasonable to always reject this kind of error with a 400 Bad
skipping to change at page 30, line 27 skipping to change at page 31, line 46
if the fields are covered by a signature, there's not much point in if the fields are covered by a signature, there's not much point in
trying to be liberal - the message should be simply rejected. trying to be liberal - the message should be simply rejected.
Message Details : baddn Message Details : baddn
OPTIONS sip:t.watson@example.org SIP/2.0 OPTIONS sip:t.watson@example.org SIP/2.0
Via: SIP/2.0/UDP c.example.com:5060;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP c.example.com:5060;branch=z9hG4bKkdjuw
Max-Forwards: 70 Max-Forwards: 70
From: Bell, Alexander <sip:a.g.bell@example.com>;tag=43 From: Bell, Alexander <sip:a.g.bell@example.com>;tag=43
To: Watson, Thomas <sip:t.watson@example.org> To: Watson, Thomas <sip:t.watson@example.org>
Call-ID: 31415@c.example.com Call-ID: baddn.31415@c.example.com
Accept: application/sdp Accept: application/sdp
CSeq: 3923239 OPTIONS CSeq: 3923239 OPTIONS
l: 0 l: 0
3.1.2.16 Unknown protocol version 3.1.2.16 Unknown protocol version
To an element implementing [RFC3261], this request is malformed due To an element implementing [RFC3261], this request is malformed due
to its high version number. to its high version number.
The element should respond to the request with a 505 Version Not The element should respond to the request with a 505 Version Not
Supported error. Supported error.
Message Details : badvers Message Details : badvers
OPTIONS sip:t.watson@example.org SIP/7.0 OPTIONS sip:t.watson@example.org SIP/7.0
Via: SIP/7.0/UDP c.example.com;branch=z9hG4bKkdjuw Via: SIP/7.0/UDP c.example.com;branch=z9hG4bKkdjuw
Max-Forwards: 70 Max-Forwards: 70
From: A. Bell <sip:a.g.bell@example.com>;tag=qweoiqpe From: A. Bell <sip:a.g.bell@example.com>;tag=qweoiqpe
To: T. Watson <sip:t.watson@example.org> To: T. Watson <sip:t.watson@example.org>
Call-ID: 31417@c.example.com Call-ID: badvers.31417@c.example.com
CSeq: 1 OPTIONS CSeq: 1 OPTIONS
l: 0 l: 0
3.1.2.17 Start line and CSeq method mismatch 3.1.2.17 Start line and CSeq method mismatch
This request has mismatching values for the method in the start line This request has mismatching values for the method in the start line
and the CSeq header field. Any element receiving this request will and the CSeq header field. Any element receiving this request will
respond with a 400 Bad Request. respond with a 400 Bad Request.
Message Details : mismatch01 Message Details : mismatch01
OPTIONS sip:user@example.com SIP/2.0 OPTIONS sip:user@example.com SIP/2.0
To: sip:j.user@example.com To: sip:j.user@example.com
From: sip:caller@example.net;tag=34525 From: sip:caller@example.net;tag=34525
Max-Forwards: 6 Max-Forwards: 6
Call-ID: 0ha0isndaksdj0234sxdfl3 Call-ID: mismatch01.dj0234sxdfl3
CSeq: 8 INVITE CSeq: 8 INVITE
Via: SIP/2.0/UDP host.example.com;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP host.example.com;branch=z9hG4bKkdjuw
l: 0 l: 0
3.1.2.18 Unknown Method with CSeq method mismatch 3.1.2.18 Unknown Method with CSeq method mismatch
This message has an unknown method, and a CSeq method tag which does This message has an unknown method, and a CSeq method tag which does
not match it. not match it.
Any element receiving this response will should respond with a 501 Any element receiving this response will should respond with a 501
Not Implemented. A 400 Bad Request is also acceptable, but choosing a Not Implemented. A 400 Bad Request is also acceptable, but choosing
501 (particularly at proxies) has better future-proof a 501 (particularly at proxies) has better future-proof
characteristics. characteristics.
Message Details : mismatch02 Message Details : mismatch02
NEWMETHOD sip:user@example.com SIP/2.0 NEWMETHOD sip:user@example.com SIP/2.0
To: sip:j.user@example.com To: sip:j.user@example.com
From: sip:caller@example.net;tag=34525 From: sip:caller@example.net;tag=34525
Max-Forwards: 6 Max-Forwards: 6
Call-ID: 0ha0isndaksdj0234sxdfl3 Call-ID: mismatch02.dj0234sxdfl3
CSeq: 8 INVITE CSeq: 8 INVITE
Contact: <sip:caller@host.example.net> Contact: <sip:caller@host.example.net>
Via: SIP/2.0/UDP host.example.net;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP host.example.net;branch=z9hG4bKkdjuw
Content-Type: application/sdp Content-Type: application/sdp
l: 139 l: 139
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.1 o=mhandley 29739 7272939 IN IP4 192.0.2.1
c=IN IP4 192.0.2.1 c=IN IP4 192.0.2.1
m=audio 492170 RTP/AVP 0 12 m=audio 492170 RTP/AVP 0 12
skipping to change at page 32, line 18 skipping to change at page 33, line 39
3.1.2.19 Overlarge response code 3.1.2.19 Overlarge response code
This response has a response code larger than 699. An element This response has a response code larger than 699. An element
receiving this response should simply drop it. receiving this response should simply drop it.
Message Details : bigcode Message Details : bigcode
SIP/2.0 4294967301 better not break the receiver SIP/2.0 4294967301 better not break the receiver
Via: SIP/2.0/UDP 192.0.2.105;branch=z9hG4bK2398ndaoe Via: SIP/2.0/UDP 192.0.2.105;branch=z9hG4bK2398ndaoe
Call-ID: asdof3uj203asdnf3429uasdhfas3ehjasdfas9i Call-ID: bigcode.asdof3uj203asdnf3429uasdhfas3ehjasdfas9i
CSeq: 353494 INVITE CSeq: 353494 INVITE
From: <sip:user@example.com>;tag=39ansfi3 From: <sip:user@example.com>;tag=39ansfi3
To: <sip:user@example.edu>;tag=902jndnke3 To: <sip:user@example.edu>;tag=902jndnke3
Content-Length: 0 Content-Length: 0
Contact: <sip:user@host105.example.com> Contact: <sip:user@host105.example.com>
3.2 Transaction layer semantics 3.2 Transaction layer semantics
This section contains tests that exercise an implementation's parser This section contains tests that exercise an implementation's parser
and transaction layer logic. and transaction layer logic.
3.2.1 Missing transaction identifier 3.2.1 Missing transaction identifier
This request indicates support for RFC 3261-style transaction This request indicates support for RFC 3261-style transaction
identifiers by providing the z9hG4bK prefix to the branch parameter, identifiers by providing the z9hG4bK prefix to the branch parameter,
but it provides no identifier. A parser must not break when receiving but it provides no identifier. A parser must not break when
this message. An element receiving this request could reject the receiving this message. An element receiving this request could
request with a 400 Response (preferably statelessly, as other reject the request with a 400 Response (preferably statelessly, as
requests from the source are likely to also have a malformed branch other requests from the source are likely to also have a malformed
parameter), or it could fall back to the RFC 2543 style transaction branch parameter), or it could fall back to the RFC 2543 style
identifier. transaction identifier.
Message Details : badbranch Message Details : badbranch
OPTIONS sip:user@example.com SIP/2.0 OPTIONS sip:user@example.com SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: sip:caller@example.org;tag=33242 From: sip:caller@example.org;tag=33242
Max-Forwards: 3 Max-Forwards: 3
Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bK Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bK
Accept: application/sdp Accept: application/sdp
Call-ID: sadonfo23i420jv0as0derf3j3n Call-ID: badbranch.sadonfo23i420jv0as0derf3j3n
CSeq: 8 OPTIONS CSeq: 8 OPTIONS
l: 0 l: 0
3.3 Application layer semantics 3.3 Application layer semantics
This section contains tests that exercise an implementation's parser This section contains tests that exercise an implementation's parser
and application layer logic. and application layer logic.
3.3.1 Missing Required Header Fields 3.3.1 Missing Required Header Fields
This request contains no Call-ID, From, or To header fields. This request contains no Call-ID, From, or To header fields.
An element receiving this message must not break because of the An element receiving this message must not break because of the
missing information. Ideally, it will respond with a 400 Bad Request missing information. Ideally, it will respond with a 400 Bad Request
error. error.
Message Details : insuf Message Details : insuf
INVITE sip:user@example.com SIP/2.0 INVITE sip:user@example.com SIP/2.0
CSeq: 193942 INVITE CSeq: 193942 INVITE
Via: SIP/2.0/UDP 192.0.2.95;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP 192.0.2.95;branch=z9hG4bKkdj.insuf
Content-Type: application/sdp Content-Type: application/sdp
l: 153 l: 153
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.95 o=mhandley 29739 7272939 IN IP4 192.0.2.95
s=- s=-
c=IN IP4 192.0.2.95 c=IN IP4 192.0.2.95
t=0 0 t=0 0
m=audio 492170 RTP/AVP 0 12 m=audio 492170 RTP/AVP 0 12
m=video 3227 RTP/AVP 31 m=video 3227 RTP/AVP 31
skipping to change at page 34, line 13 skipping to change at page 35, line 42
an error. Despite the fact that the To header field and the Request an error. Despite the fact that the To header field and the Request
URI frequently look alike in simplistic first-hop messages, the To URI frequently look alike in simplistic first-hop messages, the To
header field contains no routing information. header field contains no routing information.
Message Details : unkscm Message Details : unkscm
OPTIONS nobodyKnowsThisScheme:totallyopaquecontent SIP/2.0 OPTIONS nobodyKnowsThisScheme:totallyopaquecontent SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: sip:caller@example.net;tag=384 From: sip:caller@example.net;tag=384
Max-Forwards: 3 Max-Forwards: 3
Call-ID: 2340923nasdfasser0q239nwsdfasdkl34 Call-ID: unkscm.nasdfasser0q239nwsdfasdkl34
CSeq: 3923423 OPTIONS CSeq: 3923423 OPTIONS
Via: SIP/2.0/TCP host9.example.com;branch=z9hG4bKkdjuw39234 Via: SIP/2.0/TCP host9.example.com;branch=z9hG4bKkdjuw39234
Content-Length: 0 Content-Length: 0
3.3.3 Request-URI with known but atypical scheme 3.3.3 Request-URI with known but atypical scheme
This OPTIONS contains an Request-URI with an IANA registered scheme This OPTIONS contains an Request-URI with an IANA registered scheme
that does not commonly appear Request-URIs of SIP requests. A parser that does not commonly appear Request-URIs of SIP requests. A parser
must accept this as a well-formed SIP request. must accept this as a well-formed SIP request.
If an element will never accept this scheme as meaningful in a If an element will never accept this scheme as meaningful in a
request-URI, it is appropriate to treat it as unknown and return a request-URI, it is appropriate to treat it as unknown and return a
416 Unsupported URI Scheme response. If the element might accept some 416 Unsupported URI Scheme response. If the element might accept
URIs with this scheme, then a 404 Not Found is appropriate for those some URIs with this scheme, then a 404 Not Found is appropriate for
URIs it doesn't accept. those URIs it doesn't accept.
Message Details : novelsc Message Details : novelsc
OPTIONS soap.beep://192.0.2.103:3002 SIP/2.0 OPTIONS soap.beep://192.0.2.103:3002 SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: sip:caller@example.net;tag=384 From: sip:caller@example.net;tag=384
Max-Forwards: 3 Max-Forwards: 3
Call-ID: 2340923nasdfasser0q239nwsdfasdkl34 Call-ID: novelsc.asdfasser0q239nwsdfasdkl34
CSeq: 3923423 OPTIONS CSeq: 3923423 OPTIONS
Via: SIP/2.0/TCP host9.example.com;branch=z9hG4bKkdjuw39234 Via: SIP/2.0/TCP host9.example.com;branch=z9hG4bKkdjuw39234
Content-Length: 0 Content-Length: 0
3.3.4 Unknown URI schemes in header fields 3.3.4 Unknown URI schemes in header fields
This message contains registered schemes in the To, From and Contact This message contains registered schemes in the To, From and Contact
header fields of a request. The message is syntactically valid. header fields of a request. The message is syntactically valid.
Parsers must not fail when receiving this message. Parsers must not fail when receiving this message.
Proxies should treat this message as they would any other request for Proxies should treat this message as they would any other request for
this URI. A registrar would reject this request with a 400 Bad this URI. A registrar would reject this request with a 400 Bad
Request response since the To: header field is required to contain a Request response since the To: header field is required to contain a
SIP or SIPS URI as an AOR. SIP or SIPS URI as an AOR.
Message Details : unksm2 Message Details : unksm2
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
To: isbn:2983792873 To: isbn:2983792873
From: <http://www.example.com>;tag=3234233 From: <http://www.example.com>;tag=3234233
Call-ID: 0ha0isndaksdj@hyphenated-host.example.com Call-ID: unksm2.daksdj@hyphenated-host.example.com
CSeq: 234902 REGISTER CSeq: 234902 REGISTER
Max-Forwards: 70 Max-Forwards: 70
Via: SIP/2.0/UDP 192.0.2.21:5060;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP 192.0.2.21:5060;branch=z9hG4bKkdjuw
Contact: <name:John_Smith> Contact: <name:John_Smith>
l: 0 l: 0
3.3.5 Proxy-Require and Require 3.3.5 Proxy-Require and Require
This request tests proper implementation of SIP's Proxy-Require and This request tests proper implementation of SIP's Proxy-Require and
Require extension mechanisms. Require extension mechanisms.
skipping to change at page 35, line 36 skipping to change at page 37, line 21
Extension response containing an Unsupported header field listing Extension response containing an Unsupported header field listing
these features from either the Require or Proxy-Require header field these features from either the Require or Proxy-Require header field
depending on the role in which the element is responding. depending on the role in which the element is responding.
Message Details : bext01 Message Details : bext01
OPTIONS sip:user@example.com SIP/2.0 OPTIONS sip:user@example.com SIP/2.0
To: sip:j_user@example.com To: sip:j_user@example.com
From: sip:caller@example.net;tag=242etr From: sip:caller@example.net;tag=242etr
Max-Forwards: 6 Max-Forwards: 6
Call-ID: 0ha0isndaksdj Call-ID: bext01.0ha0isndaksdj
Require: nothingSupportsThis, nothingSupportsThisEither Require: nothingSupportsThis, nothingSupportsThisEither
Proxy-Require: noProxiesSupportThis, norDoAnyProxiesSupportThis Proxy-Require: noProxiesSupportThis, norDoAnyProxiesSupportThis
CSeq: 8 OPTIONS CSeq: 8 OPTIONS
Via: SIP/2.0/TLS fold-and-staple.example.com;branch=z9hG4bKkdjuw Via: SIP/2.0/TLS fold-and-staple.example.com;branch=z9hG4bKkdjuw
Content-Length: 0 Content-Length: 0
3.3.6 Unknown Content-Type 3.3.6 Unknown Content-Type
This INVITE request contains a body of unknown type. It is This INVITE request contains a body of unknown type. It is
syntactically valid. A parser must not fail when receiving it. syntactically valid. A parser must not fail when receiving it.
A proxy receiving this request would process it just like any other A proxy receiving this request would process it just like any other
INVITE. An endpoint receiving this request would reject it with a 415 INVITE. An endpoint receiving this request would reject it with a
Unsupported Media Type error. 415 Unsupported Media Type error.
Message Details : invut Message Details : invut
INVITE sip:user@example.com SIP/2.0 INVITE sip:user@example.com SIP/2.0
Contact: <sip:caller@host5.example.net> Contact: <sip:caller@host5.example.net>
To: sip:j.user@example.com To: sip:j.user@example.com
From: sip:caller@example.net;tag=8392034 From: sip:caller@example.net;tag=8392034
Max-Forwards: 70 Max-Forwards: 70
Call-ID: 0ha0isndaksdjadsfij34n23d Call-ID: invut.0ha0isndaksdjadsfij34n23d
CSeq: 235448 INVITE CSeq: 235448 INVITE
Via: SIP/2.0/UDP somehost.example.com;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP somehost.example.com;branch=z9hG4bKkdjuw
Content-Type: application/unknownformat Content-Type: application/unknownformat
Content-Length: 40 Content-Length: 40
<audio> <audio>
<pcmu port="443"/> <pcmu port="443"/>
</audio> </audio>
3.3.7 Unknown authorization scheme 3.3.7 Unknown authorization scheme
This REGISTER request contains an Authorization header field with an This REGISTER request contains an Authorization header field with an
unknown scheme. The request is well-formed. A parser must not fail unknown scheme. The request is well-formed. A parser must not fail
when receiving it. when receiving it.
A proxy will treat this request as any other REGISTER. If it forwards A proxy will treat this request as any other REGISTER. If it
the request, it will include this Authorization header field forwards the request, it will include this Authorization header field
unmodified in the forwarded messages. unmodified in the forwarded messages.
A registrar that does not care about challenge-response A registrar that does not care about challenge-response
authentication will simply ignore the Authorization header field, authentication will simply ignore the Authorization header field,
processing this registration as if the field were not present. A processing this registration as if the field were not present. A
registrar that does care about challenge-response authentication will registrar that does care about challenge-response authentication will
reject this request with a 401, issuing a new challenge with a scheme reject this request with a 401, issuing a new challenge with a scheme
it understands. it understands.
Endpoints choosing not to act as registrars will simply reject the Endpoints choosing not to act as registrars will simply reject the
request. A 405 Method Not Allowed is appropriate. request. A 405 Method Not Allowed is appropriate.
Message Details : regaut01 Message Details : regaut01
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
To: sip:j.user@example.com To: sip:j.user@example.com
From: sip:j.user@example.com;tag=87321hj23128 From: sip:j.user@example.com;tag=87321hj23128
Max-Forwards: 8 Max-Forwards: 8
Call-ID: 0ha0isndaksdj Call-ID: regaut01.0ha0isndaksdj
CSeq: 9338 REGISTER CSeq: 9338 REGISTER
Via: SIP/2.0/TCP 192.0.2.253;branch=z9hG4bKkdjuw Via: SIP/2.0/TCP 192.0.2.253;branch=z9hG4bKkdjuw
Authorization: NoOneKnowsThisScheme opaque-data=here Authorization: NoOneKnowsThisScheme opaque-data=here
Content-Length:0 Content-Length:0
3.3.8 Multiple values in single value required fields 3.3.8 Multiple values in single value required fields
The message contains a request with multiple Call-ID, To, From, The message contains a request with multiple Call-ID, To, From,
Max-Forwards and CSeq values. An element receiving this request must Max-Forwards and CSeq values. An element receiving this request must
not break. not break.
skipping to change at page 37, line 26 skipping to change at page 39, line 12
An element receiving this request would respond with a 400 Bad An element receiving this request would respond with a 400 Bad
Request error. Request error.
Message Details : multi01 Message Details : multi01
INVITE sip:user@company.com SIP/2.0 INVITE sip:user@company.com SIP/2.0
Contact: <sip:caller@host25.example.net> Contact: <sip:caller@host25.example.net>
Via: SIP/2.0/UDP 192.0.2.25;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP 192.0.2.25;branch=z9hG4bKkdjuw
Max-Forwards: 70 Max-Forwards: 70
CSeq: 5 INVITE CSeq: 5 INVITE
Call-ID: 98asdh@192.0.2.1 Call-ID: multi01.98asdh@192.0.2.1
CSeq: 59 INVITE CSeq: 59 INVITE
Call-ID: 98asdh@192.0.2.2 Call-ID: multi01.98asdh@192.0.2.2
From: sip:caller@example.com;tag=3413415 From: sip:caller@example.com;tag=3413415
To: sip:user@example.com To: sip:user@example.com
To: sip:other@example.net To: sip:other@example.net
From: sip:caller@example.net;tag=2923420123 From: sip:caller@example.net;tag=2923420123
Content-Type: application/sdp Content-Type: application/sdp
l: 155 l: 155
Contact: <sip:caller@host36.example.net> Contact: <sip:caller@host36.example.net>
Max-Forwards: 5 Max-Forwards: 5
v=0 v=0
skipping to change at page 38, line 24 skipping to change at page 40, line 11
request appeared over UDP, so the remainder of the datagram can request appeared over UDP, so the remainder of the datagram can
simply be discarded. If a request like this arrives over TCP, the simply be discarded. If a request like this arrives over TCP, the
framing error is not recoverable and the connection should be closed. framing error is not recoverable and the connection should be closed.
Message Details : mcl01 Message Details : mcl01
OPTIONS sip:user@example.com SIP/2.0 OPTIONS sip:user@example.com SIP/2.0
Via: SIP/2.0/UDP host5.example.net;branch=z9hG4bK293423 Via: SIP/2.0/UDP host5.example.net;branch=z9hG4bK293423
To: sip:user@example.com To: sip:user@example.com
From: sip:other@example.net;tag=3923942 From: sip:other@example.net;tag=3923942
Call-ID: 234asdfhn2323orihawfdoa3o4r52o3irsdf Call-ID: mcl01.fhn2323orihawfdoa3o4r52o3irsdf
CSeq: 15932 OPTIONS CSeq: 15932 OPTIONS
Content-Length: 13 Content-Length: 13
Max-Forwards: 60 Max-Forwards: 60
Content-Length: 5 Content-Length: 5
Content-Type: text/plain Content-Type: text/plain
There's no way to know how many octets are supposed to be here. There's no way to know how many octets are supposed to be here.
3.3.10 200 OK Response with broadcast Via header field value 3.3.10 200 OK Response with broadcast Via header field value
skipping to change at page 39, line 5 skipping to change at page 41, line 10
If a proxy followed normal response processing rules blindly, it If a proxy followed normal response processing rules blindly, it
would forward this response to the broadcast address. To protect would forward this response to the broadcast address. To protect
against this being used as an avenue of attack, proxies should drop against this being used as an avenue of attack, proxies should drop
such responses. such responses.
Message Details : bcast Message Details : bcast
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.0.2.198;branch=z9hG4bK1324923 Via: SIP/2.0/UDP 192.0.2.198;branch=z9hG4bK1324923
Via: SIP/2.0/UDP 255.255.255.255;branch=z9hG4bK1saber23 Via: SIP/2.0/UDP 255.255.255.255;branch=z9hG4bK1saber23
Call-ID: 0384840201234ksdfak3j2erwedfsASdf Call-ID: bcast.0384840201234ksdfak3j2erwedfsASdf
CSeq: 35 INVITE CSeq: 35 INVITE
From: sip:user@example.com;tag=11141343 From: sip:user@example.com;tag=11141343
To: sip:user@example.edu;tag=2229 To: sip:user@example.edu;tag=2229
Content-Length: 159 Content-Length: 159
Content-Type: application/sdp Content-Type: application/sdp
Contact: <sip:user@host28.example.com> Contact: <sip:user@host28.example.com>
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.198 o=mhandley 29739 7272939 IN IP4 192.0.2.198
s=- s=-
skipping to change at page 39, line 36 skipping to change at page 41, line 41
A proxy should not forward the request and respond 483 (Too Many A proxy should not forward the request and respond 483 (Too Many
Hops). An endpoint should process the request as if the Max-Forwards Hops). An endpoint should process the request as if the Max-Forwards
field value were still positive. field value were still positive.
Message Details : zeromf Message Details : zeromf
OPTIONS sip:user@example.com SIP/2.0 OPTIONS sip:user@example.com SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: sip:caller@example.net;tag=3ghsd41 From: sip:caller@example.net;tag=3ghsd41
Call-ID: 2304sadjfasdlfnm2o2l43r5u0asdfas Call-ID: zeromf.jfasdlfnm2o2l43r5u0asdfas
CSeq: 39234321 OPTIONS CSeq: 39234321 OPTIONS
Via: SIP/2.0/UDP host1.example.com;branch=z9hG4bKkdjuw2349i Via: SIP/2.0/UDP host1.example.com;branch=z9hG4bKkdjuw2349i
Max-Forwards: 0 Max-Forwards: 0
Content-Length: 0 Content-Length: 0
3.3.12 REGISTER with a contact header parameter 3.3.12 REGISTER with a contact header parameter
This register request contains a contact where the 'unknownparam' This register request contains a contact where the 'unknownparam'
parameter must be interpreted as being a contact-param and not a parameter must be interpreted as being a contact-param and not a
url-param. url-param.
skipping to change at page 40, line 18 skipping to change at page 42, line 22
Behavior is the same, of course, for any known contact-param Behavior is the same, of course, for any known contact-param
parameter names. parameter names.
Message Details : cparam01 Message Details : cparam01
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
Via: SIP/2.0/UDP saturn.example.com:5060;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP saturn.example.com:5060;branch=z9hG4bKkdjuw
Max-Forwards: 70 Max-Forwards: 70
From: sip:watson@example.com;tag=DkfVgjkrtMwaerKKpe From: sip:watson@example.com;tag=DkfVgjkrtMwaerKKpe
To: sip:watson@example.com To: sip:watson@example.com
Call-ID: 70710@saturn.example.com Call-ID: cparam01.70710@saturn.example.com
CSeq: 2 REGISTER CSeq: 2 REGISTER
Contact: sip:+19725552222@gw1.example.net;unknownparam Contact: sip:+19725552222@gw1.example.net;unknownparam
l: 0 l: 0
3.3.13 REGISTER with a url parameter 3.3.13 REGISTER with a url parameter
This register request contains a contact where the URI has an unknown This register request contains a contact where the URI has an unknown
parameter. parameter.
The register should succeed and a subsequent retrieval of the The register should succeed and a subsequent retrieval of the
skipping to change at page 40, line 40 skipping to change at page 42, line 44
Behavior is the same, of course, for any known url-parameter names. Behavior is the same, of course, for any known url-parameter names.
Message Details : cparam02 Message Details : cparam02
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
Via: SIP/2.0/UDP saturn.example.com:5060;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP saturn.example.com:5060;branch=z9hG4bKkdjuw
Max-Forwards: 70 Max-Forwards: 70
From: sip:watson@example.com;tag=838293 From: sip:watson@example.com;tag=838293
To: sip:watson@example.com To: sip:watson@example.com
Call-ID: 70710@saturn.example.com Call-ID: cparam02.70710@saturn.example.com
CSeq: 3 REGISTER CSeq: 3 REGISTER
Contact: <sip:+19725552222@gw1.example.net;unknownparam> Contact: <sip:+19725552222@gw1.example.net;unknownparam>
l: 0 l: 0
3.3.14 REGISTER with a url escaped header 3.3.14 REGISTER with a url escaped header
This register request contains a contact where the URI has an escaped This register request contains a contact where the URI has an escaped
header. header.
The register should succeed and a subsequent retrieval of the The register should succeed and a subsequent retrieval of the
registration must include the escaped Route header in the contact URI registration must include the escaped Route header in the contact URI
for this binding. for this binding.
Message Details : regescrt Message Details : regescrt
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
To: sip:user@example.com To: sip:user@example.com
From: sip:user@example.com;tag=8 From: sip:user@example.com;tag=8
Max-Forwards: 70 Max-Forwards: 70
Call-ID: k345asrl3fdbv@192.0.2.1 Call-ID: regescrt.k345asrl3fdbv@192.0.2.1
CSeq: 14398234 REGISTER CSeq: 14398234 REGISTER
Via: SIP/2.0/UDP host5.example.com;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP host5.example.com;branch=z9hG4bKkdjuw
M: <sip:user@example.com?Route=%3Csip:sip.example.com%3E> M: <sip:user@example.com?Route=%3Csip:sip.example.com%3E>
L:0 L:0
3.3.15 Unacceptable Accept offering 3.3.15 Unacceptable Accept offering
This request indicates the response must contain a body in an unknown This request indicates the response must contain a body in an unknown
type. In particular, since the Accept header field does not contain type. In particular, since the Accept header field does not contain
application/sdp, the response may not contain an SDP body. The application/sdp, the response may not contain an SDP body. The
skipping to change at page 41, line 40 skipping to change at page 44, line 12
appropriate to respond with a 400 Bad Request since all SIP UAs appropriate to respond with a 400 Bad Request since all SIP UAs
supporting INVITE are required to support application/sdp. supporting INVITE are required to support application/sdp.
Message Details : sdp01 Message Details : sdp01
INVITE sip:user@example.com SIP/2.0 INVITE sip:user@example.com SIP/2.0
To: sip:j_user@example.com To: sip:j_user@example.com
Contact: <sip:caller@host15.example.net> Contact: <sip:caller@host15.example.net>
From: sip:caller@example.net;tag=234 From: sip:caller@example.net;tag=234
Max-Forwards: 5 Max-Forwards: 5
Call-ID: 0ha0isndaksdj9342dasdd Call-ID: sdp01.ndaksdj9342dasdd
Accept: text/nobodyKnowsThis Accept: text/nobodyKnowsThis
CSeq: 8 INVITE CSeq: 8 INVITE
Via: SIP/2.0/UDP 192.0.2.15;branch=z9hG4bKkdjuw Via: SIP/2.0/UDP 192.0.2.15;branch=z9hG4bKkdjuw
Content-Length: 151 Content-Length: 151
Content-Type: application/sdp Content-Type: application/sdp
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.5 o=mhandley 29739 7272939 IN IP4 192.0.2.5
s=- s=-
c=IN IP4 192.0.2.5 c=IN IP4 192.0.2.5
skipping to change at page 42, line 17 skipping to change at page 44, line 35
m=video 3227 RTP/AVP 31 m=video 3227 RTP/AVP 31
a=rtpmap:31 LPC a=rtpmap:31 LPC
3.4 Backward compatibility 3.4 Backward compatibility
3.4.1 INVITE with RFC2543 syntax 3.4.1 INVITE with RFC2543 syntax
This is a legal message per RFC 2543 (and several bis versions) which This is a legal message per RFC 2543 (and several bis versions) which
should be accepted by RFC 3261 elements which want to maintain should be accepted by RFC 3261 elements which want to maintain
backwards compatibility. backwards compatibility.
o There is no branch parameter at all on the Via header field value o There is no branch parameter at all on the Via header field value
o There is no From tag o There is no From tag
o There is no explicit Content-Length (The body is assumed to be all o There is no explicit Content-Length (The body is assumed to be all
octets in the datagram after the null-line) octets in the datagram after the null-line)
o There is no Max-Forwards header field o There is no Max-Forwards header field
Message Details : inv2543 Message Details : inv2543
INVITE sip:UserB@example.com SIP/2.0 INVITE sip:UserB@example.com SIP/2.0
Via: SIP/2.0/UDP iftgw.example.com Via: SIP/2.0/UDP iftgw.example.com
From: <sip:+13035551111@ift.client.example.net;user=phone> From: <sip:+13035551111@ift.client.example.net;user=phone>
Record-Route: <sip:UserB@example.com;maddr=ss1.example.com> Record-Route: <sip:UserB@example.com;maddr=ss1.example.com>
To: sip:+16505552222@ss1.example.net;user=phone To: sip:+16505552222@ss1.example.net;user=phone
Call-ID: 1717@ift.client.example.com Call-ID: inv2543.1717@ift.client.example.com
CSeq: 56 INVITE CSeq: 56 INVITE
Content-Type: application/sdp Content-Type: application/sdp
v=0 v=0
o=mhandley 29739 7272939 IN IP4 192.0.2.5 o=mhandley 29739 7272939 IN IP4 192.0.2.5
s=- s=-
c=IN IP4 192.0.2.5 c=IN IP4 192.0.2.5
t=0 0 t=0 0
m=audio 492170 RTP/AVP 0 m=audio 492170 RTP/AVP 0
4. Security Considerations 4. Security Considerations
This document presents NON NORMATIVE examples of SIP session This document presents NON NORMATIVE examples of SIP session
establishment. The security considerations in [RFC3261] apply. establishment. The security considerations in [RFC3261] apply.
Parsers must carefully consider edge conditions and malicious input Parsers must carefully consider edge conditions and malicious input
as part of their design. Attacks on many Internet systems use crafted as part of their design. Attacks on many Internet systems use
input to cause implementations to behave in undesirable ways. Many of crafted input to cause implementations to behave in undesirable ways.
the messages in this draft are designed to stress a parser Many of the messages in this draft are designed to stress a parser
implementation at points traditionally used for such attacks. This implementation at points traditionally used for such attacks. This
document does not, however, attempt to be comprehensive. It should be document does not, however, attempt to be comprehensive. It should
considered a seed to stimulate thinking and planning, not simply a be considered a seed to stimulate thinking and planning, not simply a
set of tests to be passed. set of tests to be passed.
5. Open Issues and Remaining Work 5. IANA Considerations
1. All of the messages in this document should be considered new.
They are either new additions or major revisions of the previous
versions. They all need to be carefully reviewed by the working
group
2. Are the header field values in Section 3.1.1.7 long enough?
Should we push each field over 256 octets or even longer? Where
is the threshold of reason?
3. Is this really possible to recover from embedded whitespace in a
SIP Request-URI as suggested in Section 3.1.2.8?
4. Can we modify the example in Section 3.1.2.15 such that it is not
obvious where to infer quotes?
5. Can we modify the example in Section 3.1.2.13 such that it is not
obvious (due to ambiguity perhaps) where to infer angle brackets?
6. Is the message at Section 3.3.11 sufficiently tortuous to include This document has no actions for IANA.
in this document?
6. Acknowledgments 6. Acknowledgments
The authors wish to thank the following individuals for their The authors wish to thank the following individuals for their
participation in the review of earlier versions of this document: participation in the review of earlier versions of this document:
Aseem Agarwal, Rafi Assadi, Gonzalo Camarillo, Ben Campbell, Cullen Aseem Agarwal, Rafi Assadi, Gonzalo Camarillo, Ben Campbell, Cullen
Jennings, Vijay Gurbani, Sunitha Kumar, Rohan Mahy, Jon Peterson, Jennings, Vijay Gurbani, Sunitha Kumar, Rohan Mahy, Jon Peterson,
Marc Petit-Huguenin, Vidhi Rastogi, Adam Roach, Bodgey Yin Shaohua Marc Petit-Huguenin, Vidhi Rastogi, Adam Roach, Bodgey Yin Shaohua
and Tom Taylor. and Tom Taylor.
Thanks to Neil Deason for contributing several messages and Kundan Thanks to Neil Deason for contributing several messages and Kundan
Singh for performing parser validation of messages in earlier Singh for performing parser validation of messages in earlier
versions.. versions.
The following individuals provided significant comments during the The following individuals provided significant comments during the
early phases of the development of this document: Jean-Francois Mule, early phases of the development of this document: Jean-Francois Mule,
Hemant Agrawal, Henry Sinnreich, David Devanatham, Joe Pizzimenti, Hemant Agrawal, Henry Sinnreich, David Devanatham, Joe Pizzimenti,
Matt Cannon, John Hearty, the whole MCI WorldCom IPOP Design team, Matt Cannon, John Hearty, the whole MCI WorldCom IPOP Design team,
Scott Orton, Greg Osterhout, Pat Sollee, Doug Weisenberg, Danny Scott Orton, Greg Osterhout, Pat Sollee, Doug Weisenberg, Danny
Mistry, Steve McKinnon, and Denise Ingram, Denise Caballero, Tom Mistry, Steve McKinnon, and Denise Ingram, Denise Caballero, Tom
Redman, Ilya Slain, Pat Sollee, John Truetken, and others from MCI Redman, Ilya Slain, Pat Sollee, John Truetken, and others from MCI
WorldCom, 3Com, Cisco, Lucent and Nortel. WorldCom, 3Com, Cisco, Lucent and Nortel.
Informative References 7 Informative References
[RFC2396] Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform [RFC2396] Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", RFC 2396, Resource Identifiers (URI): Generic Syntax", RFC 2396,
August 1998. August 1998.
[RFC2822] Resnick, P., "Internet Message Format", RFC 2822, April [RFC2822] Resnick, P., "Internet Message Format", RFC 2822, April
2001. 2001.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M. and E. Schooler, A., Peterson, J., Sparks, R., Handley, M. and E. Schooler,
skipping to change at page 46, line 15 skipping to change at page 48, line 15
Figure 58 Figure 58
Alternatively, the base-64 encoded block can be edited by hand to Alternatively, the base-64 encoded block can be edited by hand to
remove document structure lines and fed as input to any base-64 remove document structure lines and fed as input to any base-64
decoding utility. decoding utility.
A.1 Encoded Reference Messages A.1 Encoded Reference Messages
-- BEGIN MESSAGE ARCHIVE -- -- BEGIN MESSAGE ARCHIVE --
H4sIABptDEACA+xdy3PbSHq3PZnHaqJNbc0tJ1g1XM9YItXoxpMyNfLYmh2N H4sIAHCZ9UACA+xdy3PbSHq3PZnHaqNNbc0tJ1g1XM9YItXobrwoUyONLe9o
H+OyZE/VZlOeFtEQQYIABYCk5VScxIet7CW1e04OW6mkUjllc0tqq5Iqzx+V /BiXJXuqNpvytIiGCBIEKAAULafiJD5sZS+p3JPDVipVuW5uSW1V8i94/og9
a74GXyAAkpAsPuxB2xAJ4MOjQfy+/t59TA3qt1i1ZNDgypwaEhFSFOkKgqbG 5JRjrukG+MCLJPTgw2P0DC2SaDy6+f1+/X1ff/31EdGJ16H1ik78azMqQARA
PnmTsXgFqdDgj6ioQE8UIl0R0JUFtLYfUE8Qrnh1v0W9hj+Jbtb+t7R9++jo lvE1wIqS+MuLhOA1VkWRkIgliX0vIlkUrwng2hxK1/OJKwjX3KbXIW7LG1dv
4NuHh4Jvtcptn3l77DlttmxWcr0T4fDg0TYuofW1pxYtD9a2n9x9JNRcP5BK 2vF3tHz75HD/28cHgmd2ql2Pujv0JWl3LFpx3GPhYP/JJqyA1ZXnJqkOPm0+
A9qq2yzLSEE7xx51qrXKC732C+n4XsOotyWCibS+9oA+L37lel3qGX5ZUOGU u/dEaDiejyuDunWnXZWADLaOXGLXG7VXWuOX+OhBS292MYIIr648Ii/L9x23
X3lwkLDxJbPtLeG2DadyDOZtCLf4ndDSSekY9uxFrrC7E9CTikSIhMn62pEL R1zdqwoKu+R9l50krH1FLWtD2LXYpWydumvCHf4kpHJcOWJHdiJ32N7yyXEN
B39HA991toSjmtukPhwbdiModcPtY13ZXV+7Q227eHC3LPiGieCuHOwYPqJI I4QhWl05dNjJ3xHfc+wN4bDhtInHzg2a4Vd6wfexpmyvrtwlllXev1cVjgYy
19uY1EjNcboI6VWj4TC4wO1qlbWCskBbLduq0sBynW3faMFpDtlpWSA6hp7p 7+kGYI9nQ1v3AAGa1oWogRq23QNAq+stm7I77dbrtONXBdLpWGad+KZjb3p6
Qv/5ra/ZZQF6tb72lv3+x9To/WhzZACz8E9UieNfViRFVGTE8a+qJMf/UvEP h13vgJ5UBaRB1kRN6Hfk6opVFVjzVlfejd+f9UX4o82QAKbhHwM5iX/2vsD/
iBvhn6MtjWIAY76vCvAa5x8hYAnBEo4zAJLCUkQdvpVwSYxxkWlQHCKaGq5j QvHPEDfCP0dbVo0BjPmxOoNXnD8CwCIEMUwSAMqgFFFj7yqwIiZYZBICI4ju
uphYEkb1DqI+AmZikjpxBoDV3nqozgv/AHw2z+F/Fv5FJMpx/EtSPv4vpB08 S7FHdMc2HIhMDEHzFBAPMFoxUBPZA8Sq7ypWZ4R/Bnw6y+F/Gv5FAKUk/jEq
fHpwtH/58HdYEMIfw0Cr8wE7KQEM0QvjKIzpTQdQDJDFxK5LuFj0mWE6zVB6 xv+5lP3Hz/cP964e/jb1A/hDNr5qfMBOawBR9AYyyIZRNra3bYZhBliIrCaG
6CFYhDFXJ5LQu+UJQklUJkkRR7rra3fhdS8LX3nWloBE4RvqCBheQUFUygjB 5bJHdcNuB1pEiF+RDbkawkL46GOUk6hukqGW9FZX7rFbVoX7rrkhAFH4htgC
f2H/8Aiu6DoBrQLPuRXpGz+/XIr0cLdHyJygeHTWYmkcqr/7PnNOghr0QRY5 ZKIoiHIVAPa/sHdwyO7o2D6pM+65E2kjv75UibR0O6xIbb98eNahWUzVP/yQ
5+lUoP9upVkDocdmZwLWVZAlVKxCB3XooHDwSBoyRHl9za8U19eqleSOoII4 2sd+g7VBEjnvnNZYPzi1doMpPxY9E6CmMFVCgQproMYaKOw/wUNilFZXvFp5
L2tWaNuwXAEetagi4fHRo+3bTx8J0CvMd3Ysg7kCwVgd7iJwH7TiBa0mbZWJ daVeSx/wa4AzWbtGurrpCKzLRQUITw+fbO4+fyKwVkF+8NTUqSMgCJXhIcSe
KNx/dCdniD9S/u/Mlftn0P9Qgv+LJJf/Fi7/pSpO4zogb1GWW82iA3bj3D9s g9Rcv9MmnSoShYdP7r7PdPhe8r89U/bPYf+JKMn/oigX/D9v/S/TcIrbgLxE
IyUQWkwNnK0F9galsI1rgb1D07oSVQGJKIny3tjdz1T5oE3Q+t5u/FtOB4nL qbaexwbsJdk/KCMjkJWEGTjdCgwHpaDErcDw1KymJExAJvZM3kRpJ9aGqfYe
tP+oGCXkP0XJ8b9y8l+9dAEJEH5MURHhp8WSkhADI5BENYos3zFowzfq1AdR K2NMvncV/6Z9CsRF+n8UpuyN8C8F+h/7U+B/2fS/ZuUCGiD7MUVZxLIIsZxS
kNtoqD9S4CYKfkPVUd7Z2drZ2orIbxvfuKxvVKq7bIwd7EBLk9DITKnunAKc A+OQDCURNAgwPVsnLU9vEo/pgtxHQ7yR/TZW8xvakNLW1sbWxkZEgVv7xqF9
OFGCE5cuwgH+O8zzl6n/IQkGe5HbgTgVwT385+P/6oz/amL8V9PG/6xD/9jI 71LToTFe2GIlS0VDU9W6c2pw4lgVTlyUDsd6/ZS63iLtP4AxSuFfUQr8L834
f7sUDv6zRvzTLnOt0xaLjPtHpf7Qn33IV+ND/nBkF3+k5qHjKgWleanyP+wl r6TGfyVr/M879MdG/t1KMPhPG/FPetQxTzo0Mu4fVvpDf+4hP5B0PugryUF/
CflfFnP8L6L1h1EBIyR8e2/a2KprMXyLBPdMO4ljsCyXIkv8OJ8eM48fOBr7 OLaL75lz6KhOmLG8UP1fBGJq/BdRMf7PpfRHTwECIHz7YNKQqqkJfIsIhq6d
iSZpEsJIhDEfxn+TNkgdM6/LDNO/fWiYQ7eLPJQCRoJHXCjpiR0i4J0MFIUE 1DlQkiqRV/I8jxxRl584wmYghQCpWMUAApEN+GzwN0gLNSF1e1Q3vN0D3RjO
GTPaffsU1tOEAD2TaWdkIgpPzg1EWItymN3zCwu6NlFa0LVtEau51Sdvl8f/ uUhDFWCkfiRVk1D5EBna0cBcSFWjerfvpYJalgag5XLsjBxEwcW5ewiqUX7Z
2fNgvtpfBvsPKHsx/z9Guf63cPkvgwL47CIuAAmzwIsLgsok1W997TE7bVse Pr+moKljVQVN3RShUvh8inIV/E9f+rO1/nL4fxQpxf8yLPh/3vpfDgPwxUWm
8FzHDWqWc3LYbrVcL/CPapa/lbZx3wpqDK7wyHOfnxUjh/MNFvP7tIPjvbvu ADCkvptUBOUo/YdCGDP8Vlee0pOu6TLStR2/YdrHB91Ox3F977BhehtZX+6Z
becsuS/FVTg2tB3dPxRM1zaKwMeL8NqE48gs8Tc+tKyYaHlsnVRdY6n+PySj foOyGz1xnZdn5cjp/AuTev26g/Pde86ufZY+ljFPGBvhDh8eCIZj6WVG5GUm
qP9fDPU/Wc3xv0j5T8K6pCsqQaJwzIKAeRxnwrHHaEMAcAkeqzKrw0E2WUJE PcFAMk0LTo4ty6JZHpnHdUdf6PwfkEScsv8wLvA/T/0PQw1rsoKAyNDo+9Tl
cUkPE10DVLssgnXqG65J2nWMCHx1TAJXbsO3mkl9wmqh5Yf6ujWS+IikSzGp ABOOXEpaAkOV4NI6NU85usZriCCp6UGkqQzODo1ivS9wxNMdA3WbECD21jYQ
71Yau+opikSnjm9afbnvVprg1yPUEa47htNgJBWkE8Q76GRCvnubf/8qcGxv e4Iue9cwiIdoI3D8EE8zRzofwhpO6H13smgrNBiRRmzPMPua350s1S+sqAHY
yf4fVZbj+McI5/hfGfvv+MitvalFWOf+fvjj4kmO9rZz4p3FPe2p0kKXWRT4 tHW7RVEmSscoeKyxKQ3vXfz964yx3QXP/ygySo//hf23PP7f+MitXtYjrPF5
hdEgGezE4w785JBd5P4dqYiJjMm5Xfs6tAuYhqfYhhdhHK7CS02by/X/SCpK fvaPA8dNsHftY/csOcM+YJBQZGPKQo+ahLGF3kI5nMTx6fv0iF3m8zu4DJEE
jP9qbv9ZSHu8/4uDw6P9xyFeU8GfQJFPg7bnXMjxO7L88svF7LUDy83dhvn0 0bkn9jVWLuAXnuAYnq1nuM6EmrQXO/8jgYz5H1Dgfx7l6d4v9w8O954GeM0E
pN7wggddyrx79wZG3/RDIowB9EcR7SVvb8AZsDDobYTv8LNuirqKZVnG0PZO fwo/HvG7rn2hid+R55ffLuGvHfhs7rWM58fNlus/6hHqPngwcPpmnxIlhoEs
umKU8+y0nYbjdp0QJ++ecbiPf7xU/MtKEv+5/v9jxb9GNBgqLwnzJA3zt84F K0ARwU76OQfkAIVBsyMExC+/LmoKZCIIWdk57olRCtrq2i3b6dnBTX403uF+
+t132SVkHNseO12q/Y8HCMTxT/L8n1XBfzZRP7m3H6iFZbFO6gQnkoC09bWD n8FF4h/LSgr/cqH/v6/4V5HKBsnzYR5OxTzKwvydc4F++0c4J6QfWS49Waj/
mDCv61z5Nx2b2A0Mr4CIYwN1/yrxQN+R6D8C+2QzBZbTWFUYpzzBXAd3OlKT T0RSCv8IFvO/S4L/fKp++mg/UAtKYhM1EUwtAlJXV/arQl/+Ytq8pnHb37At
omEkYw9qcI/j+7NEyEjwwqc9n6TKo6sAHEnn+JH3olEk54mRSek90VAv0nr+ ZLUgQliEiWG6f7NknO9I9x9Bfby3AkpZjBWEK49x17EHHllL0SCSWH8NnjF+
4cyXEA0jZNZ4cu/WjMb86rzdP7P9/zzmZ4z/4zz/a/H2H1j8ArnNOWxBQhEW PE+gDGZyn9VNQ7JLdpamMBhhjaNJ2omGkpwnUCajE5AKwnjr2Qc1X0FIjJDb
FmVYyXGhoMo+K6g4jemFgtZBAQP/6jD4gEdYZX70fH1bLNES7E9dX7N6uSFI 8ilmuVKFevVZT/9Mn//HIMH/UJGK+N95+3/YyyuhXU6tJQwi3BVlqvS4UFIk
D43CjXrDwcR1YAUVSSQxBPOUUCmr2Ydz3XRPzRQn//qaMLRQFZQ7ackgO7Ad j5YUmMV2gX61X4KMsU4p+8O6sE696PX6PlikpnhPWV0xq0Ion3xlCNACl3Cr
HsOOU1DEJqt04MNuQ6flApEKRNy9JO45kXnmYQF5uxj/x0u2/ytKQv7nIWE5 2bIhcmz2AZRRZFkI5AtDcV63Dyfd7ImaCZP8qyvC0E9Vku9mLQXZYt+zztiy
/1+I/F+QVBCZC5Lc0wE8dmL5gUe90kRtYKPwSyDvR1V7zHfbXnVM5t0dpvfP S7LYprVT9sfqsqZLJYRLSNy+ItYcS5pFWEBRzsv/cMH+fzll/0NFKfz/c9L/
pAzZv4kJrlPDrI8FhXGm75x2XSJ5p5hYRKp73DtYdWxMHM9uOD6PCxv30N+Z S1hhunIJS6EN4NJj0/Nd4lbGWgNrpV+x6v1gapd6Ttetx5Td7eHy/qk1A/o3
mQWIkV4wX/gOs6MjiE4kSYg+i9SExTH7AbUt6os9p2DMJXinoHyVIMW98LA4 IIJNohvNWFBYKJqc9O2TnoOwewKRiXDT5XODdduCyHatlu3xuLD4BP3dqWsA
afKcJCQkMcI5mSAA/07btpfr/ydqHP8yye1/K6b/89ekWECoyL9M0nAnEvUt IdBKxivPplZ0BNEQxkK0RzKXLcacB8QyiSeGU4KJCcG7Jfl+qioMw8OSVdPX
e7qOe/U7pqQDEx0j4hhmp1E3qG82TklXcgPvFFHDN4El0I4xTAmWiK5x2W+K REFFlKh45f4H1sl217IWO/+PU/a/BIv1/0tm/3MxKZcAKPM340zbsZX6nj1N
3j/L6ReJ0xkBEbqwlzhwN4VqEuH98tthMAT8e23PWm7+fwr+pdz/t2j9L27A g2H+jgnLgQciiTQIkK0bp62mTjyjdYJ62PHdE0B0z2CkQE714ZJgjDSVa38T
++Kx2w5YpUDuxHhDgexfSm0AIoEGpKXlhE3Kvg/5x6S4gFBVLHKpoVYv0joj DP9p036RQJ0RFFlTdlInbmfUGlfxYXW5/YWss92uay52/X8M/3KI/8L/N2/7
x14ReMMp0rVu0aRd5tXwabEmOfKIfQCrgaEfT9cdi65ZDGqsWAPxJXvA3zxN L+nA+/Kp0/VprYTuJrihhPauJDcAwsz2UbPWhI1bdR/wx7i4gIEoB8ZimesN
aLkSmLfLaZbjt80l639SSvyXmPt/ls3/Rzy+zy3DuK3ZHgZdvhBjtPu5t+fk jWaZNCk6csuMG06ApvbKBulRtwFPyg1sSyP6YFTDBn842XosO0bZb9Byg6kx
hfpEd4Ke10fJgv+gyYLaUuU/TBL1H3P5b0HtOrwAzGN+YDknxQfwJrhGmIQn +SP+Zuk8K8zAolyumLbXNRZs/2FZTPK/qBT+v0Xz/4jj+ywZxG1Nn1PQMuYU
K6qmP7u5+X2pYDkGY8aNlyGTEJ+1nbbfpnbpyeODl58FbvGYXffbHvv855bv KoGcTSVFq7/s9pw8qI2dRNCK3CjT8O+3qd9YqP4HQQr/PCVIgf85lJtMAKhL
3Ag2reDT7apHX5x9sbW9s3Oz/HMr2KxRvyJudZnlGddvtqj/add9aTwLXLf0 Pd+0j8uPmCQ4erD8TpIVVXtxe/37Ssm0dUr1W68DkhBfdO2u1yVW5dnT/def
meEyfljRCj7fmx1+MrDviNOCOEvXC4py89nm9zde9u1VX+7fL//qQ+HhE/i4 +075iN70ui794hemZ9/y103/s826S16dfbmxubV1u/oL019vEK8mbvSo6eo3
Itzla3/TN0qdtz+pZq7AbTBHfPl97wu+sfms943cLFwvFXsXarYdgzox45cJ b3eI91nPea2/8B2n8rnuUH5a2fS/2JkefjLw7IiTwjcrN0uyfPvF+ve3Xvf9
hz/iMSY3brzcvPkMiAuVjR9+9/pvf/jt6z/A8p+w/A+svwrXf/f6H2D5DXz/ VV/tPaz++mPh8TP255pwj3/6m75T6rztyXRz+U6L2uLr78M38Nb6i/Adul26
L1j+eyMUop+FV3op3tj8Hq5WLEUE4q7rGYVf3iteL8HTuLHHV79/+flnu7fK WSmHN2p3bZ3YCeeXwU5/wkNLbt16vX77Batcqq398Ldvf//239/+1w9v3v7+
v9re+Mu/+OKv/ypSWkvEmGiycI73IS64Yx6wyp4Dj/eBqX/NqME8uHbh5uYz h3/44bdv/+Ptf64FCvOL4KqvxVvr37MrlysR5XeA457j6qVfPSjfrLAeuLXD
+CnKP/zH6z++/t8f/vX1v7z+N/j7d6//6Yd/f/2Pr/+48iky77j818GyRJZq P37/+ovPt+9Uf7259pd/8eVf/1UkjZYIIVIl4RwykFTWIQ9PpS8Zp3uMxL+m
/1MUJRn/n9v/Fi3/PQH578u9bDGAlhmcdEuTPL6bIkFElmUR2h6Qlqq2BQAf RKcuu3fp9voL1v3V//3Df//xX//tj3/3z//zT39Y3jUw77f+dwoljBbq/5MV
j7CDq1VaNddhuzzjrwrMqRgaHPrnSNzNTpMahlfx/bi1fWCB2OTFAwYBfVGy Oa3/FfF/89b/njH976udfDGApuEf9yrjZnzXRQSQJEkiKzusaqVumQz48cA6
8ctFGKSoimra/UVCimRlKPBeblGYN6jqd5nMEfDfDpbt/0MJ/x/GOf5XSP/L drdap+HYdJsv9aszoioHDof+NVJPs9Umuu7WPC/pZx94INZFWQKDOL5otfjt
Wg3zjdKCtNDwL031DYwXiTJ806rzQt7EGMWCyJI0JQzOd5ssW53QyXDvBweb YqQZCr+oiErWc0ZiiiR5qPhebU6YS2T1uwryZF3Q9Rc9/wdS/j8Ii/yfS2T/
rtekQVJ8kUL55VaIXXgmwq1WtdkWeJJxZUOSyMY2bLy1Pdi95N/fdp2TeQcA 5c2CeallQWrg8McT5wZCcY1niNI9w2zyLN5IH8WCSBhPCH/znDbNlyV0PNj7
z8C/wvfF6j/JGOX4Xxn8h0rUgcCDuAQqcDrBoU0muKYA8r7HmuwNP4SW53KA kcGG47aJn1ZucKDd3AmQy3pGuNOpt7sCX2NcW8MYrW2yL+9sDg4v7Pe3HPt4
ALo2UnN7ywq8H2NR+WKlw7wz/vpe5tKhdpvt8G/hRXgv571U/Br0vHfheXQp 1gHAU/AvywpO2X9F/pclwn9gRO0LPIhLIAKvJ9ikTQXHEJju79I2veQfoeM6
bQl1TgaK3kP4+M4Kag/dp/wGuEbb49G0SV+ACmiHt9Nj2Pxm57k5GReNdW0V HBoMV2uZa3qrMhOUWDC+WDul7hkX36t8nRKrS7f4u+AmvJWzftW8Bmt5eONZ
/0tYGryKtVDLncu7UuldInKF8B25nD+D+w9/dZv5/rALl/4lMnqD9O0xWDlb NCnrFdiclBl9j9mf70y/8dh5zh+AW7QhR5M2ecXMQSt4nJCw+cPO8ut0QDTU
/N/Bq2YNJQWi8cgBNBQVnvSeSPE+UF7mUuQYKwv9B168bCgXe7/n/M7fGvCK 1GX8H0M8EMVGYPHORFZq4S0idwhk5Gr+GTx/8Ktb1POGTbjyN5HRezDYMC3c
YsjzK4u4UtinFNsfcCZCxtW0TpICj1M8TVKIMYq066A4ze0EDdZjNAfJ84zX pezLs/n/OxA5c6grIJVHDoChsvAs7JnyQ1bzKl9ljrWq0O/48lVDuhz+rrO7
A+M0KedRY31KuR+sxGlSziPHaNLuR4rTpJwn9oyfCmUhQRN7yp00mvhzFoTk fmfAGeWA+2vzuFPQpgwfIGMohOJm2mm6BozXeJ6uISZqZN0HJOvspupALVFn
tVD8PEkaUU/8XilEWpIohUqd/dOLSgYaOQONlIGGZKDBGWgyvNIimk2jzybR P32deEYwXifjOkqiTRnPA+VknYzrSIk6Wc+Dk3UyrpPo4+dCVUjVSfTyaVad
ZpNkeMgZnnGGR5zhCWd4wFme7wyShE7ZL5hjVIZ2nYGauSghbxFLr0t9dj0z ZD8LQvpeIHmddB1RS/1eGZXUdKWMWsr0n16Uc9SRctTBOeqgHHVgjjo5RFoE
YnYJMuUF5uywf0xBOXZwEsw7AHCm/W9s/q9Q/1flXP9fpP6fXlDrcqL8dKyL 0+to06uo06vk6OQcfZyji3P0cI4OztO/U6qkrMp+4hy9NvTrDAzNeSl783iF
CV9hNNBf3IvYvvsOydlhJvIcZ+lR0CXb84ko6QRrKlo1PmB3fcPyW0v1/xFV TerT9dSY2QXolhfYs8N6H4JyLP/Yn3UA4NT8P0BK2v9KEf83V/s/O5HW1UT5
jONflvP8n4W0y5n/b6OHvY1bKXxgVJlvRtw/DzOgx1VjzwQN8yzNGaegCZU5 aVATU/OG0UD/oQyKOxHnd3+Wcnq8iTTDbXpkcMUOfSbiGoKqApaECKyep5te
OV9IHJVu1s8n/4vjf/nx/xJK4F/J638u2/6/I9jebBbQg/ZzkxV1GM00jRRf Z7H53zPiP4r9v+ZTrmb/v7UQcmt3MnhglJFvStz/QBR56AE5qus7BrMwz7Im
6GaWqsCkV5894e+TYymAvGCoVefTP/C5l8L4/i4I972vmkWR33WI5DXCtKK+ 42QwJjUnp4XUWdmO/WLrvwH+Fx//j1Lz/5Jc5P9atP9/S7Dc6RQQQvulQcsa
E1AkSEXcl5ShHsbE4kWY6NNkDHHxMsZ0FWNlZYy8rTT/5wwwWOr8XypJ6n85 G8RUFZVfaUaerMAozMyemu+T4pQQSGeYDFR3qGPyrZeC4P6ea4fvVITdVrCo
/18k/0+X/yZWgH0jhVDTRGksbQtJbXQKeojZcE5BBgRGLxGk69TgCeC0y8he qD/5JyKmUsoY5YhVFcemLoJIm6RYiPNXLCYbFsumWBTlXeF/ToD+Qu0/BaXs
iiwoajrRtBlVP8RZ8iDRB5Ve58LjV9+M1Kzay67/g2RVieMfiXn8/wrpf+cu P1zE/86T/7P1v7EZYC9lEKqqiOMc35dAo2WfMN2PcTxGQNOIzpd+kx5FOxk6
qcMLKmCSjU24fPKGNLMRTzcaYxRSmNzpcDnQ9awa7ZqGS4kreTJ2ieX5o3mC oKhqSFWn5PsQp+mBSBvkeJ0Jyy+/+6hdtxad/wdIqfjPIv/Dctl/506mw1Mp
RBlEoZGymABmQhNVUJJKjgM+YM+D7ZZNLYfD+ghum93wBccVuvRMCFyB+0Xh QJSPJhy+a0OW24gvN4oQRSiqRsPmKqDjmg3SM3SHIAe7EnSQ6XqjHYJEiSlD
0XSFJnXOBLcasMAXqMcEn08y4TODEx0zgR9YWg0ltGn5TRpUa/NkAjPtP3Lc IyMxBcyUJSqDdC0pCXifvvQ3OxYxbQ7rQ/bY9JYn2I7QI2eC7wh8PpR1TU9o
/ivBthz/q2f/uVBcJ5FkLGee/oXXIfSfG6adtaB7bvK5FPzj5eFfRTiJ/9z+ E/tMcOo+9T2BuFTw+O4SHtV5pSMq8BMry2F8tk2vTfx6Y5YkMA3/SErGf2FQ
u5D2cP+7B/tHX3979+3gABMl9ZigPp1TTC4BONszTPSLiPRp0vxKWGiabTuw xH8uo//nQnGdCEtQmrT9S1QGmzzzoPdSN6y8qdwLV8+V4B8uDv8KgBH8KyH+
5qwBzLL/ikrC/0uUfP6Xpdh/AdAtEF4z5n9geRbuBu87lrPWh+/nXY0gP2AS C//PXMrjve8e7R1+/e295WAAOIUBxmrqCUV9MlOMT/43fUYYaRdR6bO0+aXw
usanidqLIKhPqs+kxVOY1NCGzc3RvATxZJ1lsCehsWSxd4eVr3gubbYAlGmm 0bS7lm/O2AKYvv4XJ/CPmPZY4H8R/l8G6A5TXnOu/4DSNNwN5D0723LmfFC4
Z6LEHnvCgn5ODoUneq/xpRdRyOWwVWpO1Z6z9SeD/CfF7b9YkXL9b9n+v0nW 3moE+SFJ9EVVU/k2UTsRJPVP0XKfAyeQ1tCnzd3TPAnxeBtmcCRlweTxfweZ
XyxLbyoPhqYdIk2SALEYmo88WcJdMowJQhligkiW4n7jdyWTNzPyFi8y7xcv sPg623yBKJOc0UhO/Awpj/o5GQuOncSGV55QodDLFlnsujVj708O/S+W/4vz
dDMhXIgsNFzQcT1GfddZ6vw/GCf8Pyj3/yykDeb/hJ9IePO5PQ3fwQTpdQpI P5RRkf9l0fN/47y/UMKX1QcD1w6KeoG5HMaW9UExcCG5EoY9NAwHAjnCgVCe
5jN8WrxGr65jzOt5TpzDPZ/Nc4njv9thtl9davyfhOVk/ac8/3+x9l+XtkrH xH7xJ5PQ5Ry95Yvs+sUT3YyJFEJzCxW0HZcSz7EXuv8PTNp/SC7W/8+nDPb/
jLXK29sj0JMyQQhfThiwloj0IePOHQQaktOL+IHTo1PgME63FwDUsEe1ukmv ZP0vXHpvz6EwEYZivrOnybPzahqEPI/n2N3bi108Fzj+O6fU8uqLjf+DUhL/
hPCkObr7uRh6Fs+vlNceOm27wTFdbv1vVUr4f2Upt/+ujvwf5v8/8ErCNyWB EizwP1//r0M6lSNKO9XNzRHoURUBAK8mDFhNRfqgGHWEchhG+rDLgxPGMHYv
1+XpjaJJ0X830+S/KXNdiRNrfEwL8tfjgnvWObBkvSwjGWVgC5kDPcgy5sG6 DPxpWaMs3ShMITxuc+7+Ggwtz8wvLnISnXQd/4gsNv+3guUU/lHh/10e/T9Y
BBXAYye0HSx5/l9JTYz/JI//WEib8/x/mkqwWKtjImIt0wR3fcyHSAZWMXFG ///IrQjfVASelyccRdOq/3auzX8zNrkSo3HAA5EMzIBJsf1aUmnPu+uVpFUl
Pz7Oj2yUE9T+2+2g5nrWixC5ZeGh+63D7jlu1z+qWf5htcYrj7gtetpmRXj9 IIEctJA70AMtYuerK/ARu/SYdP3F7v+LZZDCPyj8v3MpM97/T1UQFBtNiESo
aYXHZSTA/W5LBID/Y2pUg+XO/4vj+Ffy/L9Vw/809KdiX9c1QvDUlJ8GkWTq TtrZbiiGMR/AANKMM8bu6ccH/JFzcoztv9v1G45rvgogXBUeO9/a9IHt9LzD
ezYxjePOnohK/J84SgKcNp0nkUuiBtSEL2TKFMRjM4hOn+QAltL4RAfvevQI hukd1Bs8BYnTISddWmY4IDUeoJFC+Y9SNWAdf0T0ur9Y/KOU/V+M/8uG/0no
4J9PAbJc/EvR+u8kt/+9G/jXzgP9uFP3Emf2eTDBwjgL+m/RLD4Xbz4oVNSb z8S+pqkIwYlLfobS10JYIp5rIUM/Ot0RQYX/J44WAU7a0BNJFVFltRF/oQl7
7xSAM/V/IsXxL6Nc/l8R/KcXYMfTDGxEwr5hupPN9lFbwRTrP+baOK7XhoFg Ecf2EJ282wF7VeI7HvxIw0jYL8D3TVgs/iU57f8r4j/fdfyr06AfCl4C+slZ
RNF0IvEEElUSdT5xMMERDhHNG3S65LTuYeKilqF3qGOfkq7j2Q7rumad+nrb 3Svc2ufRGFfjNOi/A9v4XLh4zKAi7my3AJxq/6NU/AeWC/wvCf6zE7DDSQ42
SsomBEF/95+3LI+FRokFtMmuifEnzAuJCjusd28VrCGsq7KuKARrovwGZswe hKGnG854t33UVzDB+w+5NQ6bjWEgGJJVDWG+gETBoiYCxA5HiGFILkOphsgB
/u2TZeJf7sV/j8n/ai7/L9T/JyMiHDKvY1WZ8MShHWrZ9Nhm54Q/CuH/4sVz HV07JbZ1gnq2a9m05xhN4mldM62bIMDau/eyY7o0cErMoYyfmoj3ME8hKmzR
w+LzdvrdzAwgEVLV5wAMoFw3Wb07NArgMDFEI5Kq8tQxhAkRo6keAx7gdFwK 8NlqUAVQUyRNlhFURekSbsywp6zjReJfklL4l3Ex/z/X+T8JIOGAuqdmnQrP
92B5jkt9hlyTx5XWHHzqmi7lK5iyrsnP5fEC5IF3VrxtBsyDS0g6QVgjGjwU bHJKTIscWfSc8AcB/F+9eqmbfMdOr5ebAFIhVH0GoMTTmwZt9oa+ABgsDFER
/slX+XV0DUSa76jnWM4JT0CDy7od5gVtjwkbB47wyHNPAJ3+xlvkVvCN1tLz VhSIAAYQITG61CPOAUyybYd4FDgGjytt2PDEMRzCP0BCewa/lssTkPvuWXnX
v3iyZ2z8R3n97xWz/4dGvmdJJWBy7mQ8NjRDSYCpxQDGbIQ8QMgA3mCsr92u 8KnLboE1BKCKVNYp/C//yO+jqUyl+Y64tmkf8wVo7LbOKXX9rkuFtX1beOI6
Vlkr6GdnOe6xa5wNjXzncAqIM6atGkvqXJm5AN7UEeCzprXk+h9IVpLyf27/ xwyd3to7NK3g6Z2Fr/9SpGT8DwJi4f9bLv9/4OR7kTYCxq+dTMaG5kgJMDEZ
W0yL53/tQCcr7YKEIuA8P1OYCHXXO+lFAxAs4WnxAKkOAW00zA9AH4Pe1tiG QCiqfdcgDw7SGTfoqyu79Trt+P3VWbZz5OhnQ9/eOSYFRGlyTHhsUefS7AFw
VqPqq8Wm1WRbXHzutTDjAXoZbDet58zYimzwrRMHtkRoYTSnJwx2wJkjK6ZH 2YkAj7bNBef/AFI0/7cMiv0/51iS67+2WCNr3RIGEXCenxTGQt1xj8NoAAQx
T6axkrcnD83nT2e5+R8qSo7/RM7zPxY9/vcrll4sBZwDe/ylBzHdc3qxOxEt nBQPMJDLzPkAdTTcD8CfgOBG7ItOq+4p5bbZphtcjQ5LEBrOWutvts2XVN+I
IO0i45qAzxxjnGMMjQFhZhiz2lFGQU2nUWee1XZPYQ/tOA2bmqxRPwXRvy2R fOGZxzb7JlKXjerkmLID7MqRD4ZLjidRyvKvR/N4ryx2/YcCovs/hvhHxf7f
Nu2yYVkgjcvwMIIOhYFZFUv795Lo6m5SLCBiMm4gzll2Rpyl11qeG7hV165s cx//+5lKL7YEnAM7LuxMTXftMHYnYgVk3SRuCXjU1uOMMXQGBCvDqNmNEUVf
xNlWUS3yYyhXLjYSxzWB1D6p+DUqJvYdu3ymOe+sslGERqQ7X8n6HcCbIol3 gLvOCTtCTu2WRQzaap4gbHYx6pIeHSYGUrkOz0bQoTIwLVNp/1lSTd1OqwVI
7yJN1WVdgibK6h11/8sNzpCKxSykid6N+CE/Sf4mXfBNWoWh7LzxLlI05L3X TMcNJBlla8QoYem4ju/UHau2lqSrslLm5xBuXKylzmuzqtZxzWsQMXXsyOE7
t1Upa3LR13kaAnfC+U4qG+FoWWqpURX/yOMhyswr7jtV1whNA8eWAwAckdy1 zblntbUyK3u7X91H6i7Y3d1TFYDvMnzdFwEW1a92VaDcvb/GiahczlM11boR
/JbrW70oBBrAa1FrwvYdwbRsljzz+hp69dHff/CTm7/++tf/t371w2u/f/XR D/KLFJJ0QUlahiHsvPEuOBruHrZtWdKaXFScJyFwK9jvpLYWiEilo0RN/EOX
GWxqX7t6VfwY/eSD9zd/+t61P3//Cvp4RHT1968+eIFevaejV9f++ffvXbt6 hyhTt7xn1x09cA0cmTYD4KjKPdPrOJ4ZBh8Qn4lFo82+3xIM06LpK6+ugDef
7dpHV3575TfXPr1yFa0P6a6+D4e1wrO89+RPPvjk2pND8RP0M77y0SccC5bp /P1HP7n9m69/83+r1z++8bs3n5yxr7o3rl8Xfwp+8tGH6z/74Maff3gN/HRU
eo5FxZ+hP+MbP/zko0PqfOP6TPwp+lO+Ze2T9+G1sQLxc3SDr3/8/+1dDVAb 6frv3nz0Crz5QANvbvzL7z64cf3GjU+u/eO139747Np1sDqsd/1DdlonuMoH
xxVGApuaBJNgYpJi2i2044Qg2PuR0QkrQ+o0iakrbAubjONJfOhOSEjc4bsT z/7ko09vPDsQPwU/5x8++ZRjwTQc1zaJ+HPwZ/zLjz/95IDY3zgeFX8G/vT/
Mo49QdiN40xTZjJuZuI2sRk3YzIdd9o49jieJA52fsfJGDEpzQ/QNJ7Wps3P 27sWoKiuM8wCSoMaksBIWqA5ATsoZfHcx7J7F+mQajPGGFABdRInzd3du+xl
uNNpUpqf7t5JIAkJcNqIlO7Hj3R7t6fV23333r597+0SFz5sFFVtlahoPg8m l7vkPlhxdMJCGxv7cJLQPGwTZWqqpmOm1ZoaZxIf7aitzXTXpPQRoKZOE2lr
ohh1vdA64beK8yFDQZqiWJahrZuK8yl0SNmih7D5v9KYEngdPs4uKpzK9TB8 M9pJY2gTe869u7BPwLRZGns+nvfcx577n/8/5z//+f//4JL8wlmIbUSVWgQr
IJ4CpgVZ2eEHs2B4rzkczjq7y7ywoPCVcUvxfQ9V9qrDf+06VVLywMf11JW+ 8fGcwmZ82CIo6lJBVkU3JqIQ8bhQu+Fni+dBhoI0RbEsQ1vuLZ5HoUPKFjmE
4OMbD7sLjr97y1tj+4bf2P9FZ8cLzb/vu+A8+8895b8+tfzhD0aa3U07AjeG jv9KZUrgp/FxTtEtyVIPgztjKWCalZUT/GYWDD6SHQxmnenLnl1wy+kxc/HD
hnfAK1yOD47966dHu+8d+vTnNU8fHO0+UHJVeIjuO3LgN3n3Lbr+Ys+ed5/u j1UPKEN/6TlaUrLtvRXUXFF7bu0eZ8GL55b9brR/6PUdV7u7fub4zd63G8+8
PCneUP/y0GDkgW2v+BsOM3uc5eZsU5bpUHgMhv8MS9E3KL06ZyksCqf6FphI v7XihaOVT1wcdjjXbfZ9PjC0Gc5prr946J/fOtj70OC/vmN9addI786Sm4KD
pUtyzDDLuHJxztKcorovll1ZcsK75oniXY+2j+38ZOTOLREY3o/Pl+eEH4Lh 9N79O3+Y//ANCy9s33rupe4jwqIVpwbPhrdtPO1t2sNsbazIzjFlmb4XHIXB
nq4i/63FRX/Z1/G9rkZpSePbvecbi3qP92q/VDI6DrpNWUnDMBtRX/78m7Wb t2AZeoOym3Pnw6JgqrfARCorzM1GCpJ+5Y2583OLGq6Wzi057Fm5r7jvmc7R
L+aeGan87B9j2+5dvWz3Ox8PR0qfHOq7f2f1+b9V/cK775Hvd/8p7+AfPl/2 LVeG73sgDIM78PmK3OBjMLi9p8h7Z3HRn/u7PtfTIhW2/H7gfEvRwIsD6m45
rPP0aXPxrm+fPrKi4NLzo6V/vNh+VeX4Ix+uXbPz+TeDFW5E2ttHRsdHN7w0 o3zQa8pKYMMcRH3/h5+p23Ah76fD1R/8Y3TjQ3eVfuWN94bCZQcG935ty+Lz
sO7S643nLvS7lu9tfnzlR/yJYP9nK7Ux5buVJ03U0RMv5Z762dFt36l84vBd l2u+6+l/+ou9f8rf9YcPS19uPHEiu7jvthP7awsuHRspe/NC503VY0//bdXK
hGEIwxCGuQyGobpNQ7DbNIhEEdyRUXrEceekBDwY/i28doJIi7KpeIkIl02e Lcd+q1U5EWmXD4+MjbSeDK2+9GrLr94+3lz5iOO5Je/wh7XjHyxRR+UF1UdM
WUAVRNmKpqw00v82wfLJszkUGhn11b/7sX/LwpvpReMbD/a/ua7znbN3w/WT 1MHDJ/OOfvvgxtur9+25nwgMERgiMNcgMFSvaRD2ms6ioQhuzig9YqRzYgTc
FxVQP4CrYN7CbxgF2blw8cR7s9mc1YW6a/LYVAdzjWbmJpZfn8RaOeGu/jPX FfwRvHWcSDfkULEjIiydODOLKkBixUIrxdKQqYXWe2HFxNlcCnHGQvjGxVPr
rfx733OF246t33+u98XS0dFz+Y4X+nte3H9n4eK2DQdWuw6defnVe5xHdt1/ j+zTTDbbMurCpeCTxafhmomLCqgvwaUwf/anjIKcPHjj+P/Z2dlZPai5Jo5N
aW3P9sFPt752z2ODu2/bu+XQ+5907n5v0zVP/cp9ae2ZBe3HqU3ly8+HP7z6 DTDPqGZefPnCBNHKDfY8cDVrfunY8bfuCP388bFX+585wb0//G7lFfb7f71i
ome4aMHbN1xYc9psCsvXLB3Zy9Bv9b0nn3y/fMfqhpvGP3I+M1hYObqzafT1 PXT21E/W/j2/svXddzb1Mavl2+BubtHt5/ZY+p+fc7nR+9pThY6R3ZcXLjuz
2alLFgsJ3Z6H0BC3fdUB4DP6fyXkfzfWf1ji/5Vp+w8f4KW6Vl6V23zRdBcN 6v7XTh775f5fL5gtPP6Diw0VC2DrL+aee6Hvks3zx2cfPf/8+q8P3XxgYDuX
AE1XkkuNCbbCB9q9iUbfH/F3WDwNShO/XnDZAerytA7e8e5ed3Ru395poe1A detX39zYvcpSIe7Y+lR1x/LXH902PYXJbCbB2tcdVCRtH3cA+JT+X7H5/wz7
8/pUgH41rwikYFszmlGiyRMwgkOMqxj7xHxbL0jw0UANEHljadYjy6AZ9Srq D2TI+k+m7T+8j5ca2nnF3yFG0ls0ATRdSSw1Jtgy7+v0xBt97+HXm91N8jp+
MdxgWcYHiv6SYi5rm+1yDuYVdH+HnsNjvvA/nr3irTfVOcz/tSLZ/ssyFOH/ javZDlCTxzp463wWZ8yNdfVa371pU7eZRpd5RAWgb9UjAEnrcKBpJZpBASNC
OVn/+XL7P/xH+z4AyePmRK9H8PCi39fqZXm/IPFbW/0hpNKrvOrBC0BpjGSz xLiKsY9PuvWCOEcNVAuBN9Zn3X4/cKCmRc2Ga+334wNZ/5NiQmub7poOfhH0
2hli5jTASZVcqxpRLXq6WgFebRW8nmT/mDUuoDHT1KM5GwxKAv5Gic10/tDZ /Ho9ccd1IP949oq33lRmMP9XrTVB/lma+H/OzPrPR9v/4T/a9wHE8KBXbPew
0OQEGjtNZV4VoIcRpRROOdP6wUKe8wkeSRRTLEFpSkida/lvhVP9P8j+D5nn vNcl8Q+2ewNIpVd4xY0XftIYyaa1I8TUaYATbmpe2oLuoie7y8cr7S6PO9E/
f0VskzXRgujRknrRF4B0/mD66Esz4rGrBuQSTfdpPijRfh+Q0SPFooiqHFTc ZmUzUJlJ7qM5G9QkF36j+Go23t3YtK4RqOwkN/OKC7oZQUrhlDOp+yvkOdHl
YqoHC8eiqZyNSzDiiyFF9rmDDMtZsZVeEj04gtyr0AxrVWZ8kNCMjYsPLk9t lgQhxdKTKgeUmR7/LdCaNP6zRP4zLv+y0OFXBTOiR1vqRV8A0vmD6dyXhuOx
158/EeNBya+6277aJ8DM8R/MlPVfwv+Z5f8kvykjONKuyRrePNmIkXQbA59k qwbk4k33aT4o3n7v86MuxSwLil+TnUKqjoVjaQ7auFg9A/OzX3RqDMtZsJVe
g5hPwPzfRs8x/zNx8Z81UOd/yBL+zwRmF//lU5slO9JdmRqOttUwE1Laq2k4 Etw4gtwj0wxrkafsSGjGxsUGl6e2618/EeOa5FWcHR9vDzCl/s8ySeu/RP4z
YUwoFKpKpfYjxkzr01Xn7Wz3ihKviYIlOY33pDBmORgf4DFVGqdPOErNJiR0 K/8JflNGTKRd9at402QjNNJpMH4mskFEuFIi2SAyIf8d9AzLP0Mnyj9dS+b/
JV59tdfLXuluV5tP8970/5YtPCjNef43CtLx8p/V4z8pkv8xI4hp9jSEwAHo GcH04r9ExSHZke7KWDnaZmXGR2mPquKEMYFAoCaV2o8EM1GqdV7Tp/+e7k6P
igoGVABrRQUNBp4deA5EwpFu9DLw1MCxgScjPbgsqSjSHfkJsICBU5Gu2LmB IPGq4DInpvGeGIxZDsYGeCSPxukTjlLTiQRdgldf7Sv8HunLzR2i6vnC/1u2
Y9P5RnK2JJ6kGJrlEjaEhUg9sLFQz5bL+rHQ9zOttKiERMGj3uyaJpVc2mBU cE2a8fxvFKSTxv9aK5H/jCCq2dMQgnpAV1UxoApYqqpoEHo59AoIB8O96E/o
ijK2m0ujtYhC0HANomkulcs3NysXmVRhXJxtSoa5y0sTw9nSus5wtmqKrvk6 x6FDoQPh7bgsoSjcG/4GMIPQ0XBP9Fzo0GQ+kZwtQSZRb89ydHxHEWFKvBWk
by9N8DVHSPVJHXMb/0PVWKfofzRL4n8zvf7T4esQ/S11bi/vUyyCpLgTJk1o Fw/6XqadFuSA4HIrdzRPkkoubTAqRRnbzaXRWgSXZrgG0TSXyuWbm5aLTKow
ooAmhxKiAR+vHDYAe37ezNVBLQAAPWCxJ6IDPcAoG/5hGCk/z6PgneaAHZTV Ls6WlGHu2tLEcLa0rjOcbTFFW/8Xt5Um+IQgoIhS18zG/1BWS7L+RxH//0yv
g/WyKkrNotICNm/eXFYWdV00so0JCj5ZNyUmFv/Dd3boSd9bBduXXYlKfOrr /3SJXYK3rcHp4UXZ7JJkZ9ykCSlvaHIoIRrwscphE7DPy5/6dlAHAEAdLPZE
TdJjfdyqnn0YQg5/VFwcEb4CUQKAanSxTg6ARZ3hczmhh8akHcNBNap+qpho rEcdGGXDXwwjzct3y3inOWAH5SvAGr8iSA5BbgMbNmwoL4+4LhrZxlwyPtmQ
TjF0Ky+1BEThdpEXcNwhAJIY8hhloIMPBEV0Kzzr9klBVDL15AajT4z6TUh9 FBOLf+En1wOc5L3dZZtiJcrg+BSLUPG9vl4lPdbHqeiZhyHk8EfFxBHhKxAl
3SAF1SAf2IhP20FtbWUl+qudUXbpiRBwP0ZdVfUwUDWh+wNKbASE0Oc49AbE AFiMLtbJAfBQZ/hcjuuh0dGO4aASUT8VTLRGIXAnL7X5BNdygXfhuEMAJCHg
SiySbNELUId02EGMJrrBsBrgOTiG2u7D4i5hVES7z6AQHhkAxHx+ff5WGwDY NspAF+/TBPQoPOsWJQ2VJJ9sNdrEuH8dUl9bJU3ReN9afNoO6uqqq9FP3ZRj
gXWCxMYd0VusT+gEplbYqmirtQpJd3yv6I0cqFIsEh2HbSLhZy9bF5TRVAOo l57/ALdjxFVVDwNV4prfJ0c5IIA+p16vQLTELPnNegFqkC47iNJENxguBngO
muKT0PAqw8Mr7cBCt0LUNsa6I+ZDi0r0b2m0WcX2EMG4pBZsRW2HVczlZ4FL jqF0ini4i+OKSPMZFMKcAUDU51f0ttsAwA6s4yQ2noj+xfqETmCq1lZDWyw1
mweazYxY3y4i9vPM8fyfhsn6P7OC6P//Q+t/01n6WryqwFJJG36qvNCKTXkB aHTHz4o8qB7dFI1Ex2GbaPCzl6/W/GiqARRVFiXEXuWYvdIyFnoUorbB6/VR
j9RGy3SAZRRrEBrmvgTTHkNT06zszWqPT2xF8CXbDiBJ/UpAQEBAQEBAQEBA H1pUor+lUWcF20NcxiV14EFUd1jDXHsWuLQ5oNnMDOubBCR+7hme/9Mw2f5H
QEBAQEBAQEBAQEBAQEBAQEBAQEBAQDAP8G/qAJOHABgBAA== 9P9P0PrfZJa+No/iYqmYDjjCcu3YlOdzSx20n/axjGzRoGHuizPtIU1gkpW9
ae3xia0IYqLtAJLUrwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE
BNcB/g03l0QmABgBAA==
-- END MESSAGE ARCHIVE -- -- END MESSAGE ARCHIVE --
Intellectual Property Statement Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it might or might not be available; nor does it represent that it has
has made any effort to identify any such rights. Information on the made any independent effort to identify any such rights. Information
IETF's procedures with respect to rights in standards-track and on the procedures with respect to rights in RFC documents can be
standards-related documentation can be found in BCP-11. Copies of found in BCP 78 and BCP 79.
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to Copies of IPR disclosures made to the IETF Secretariat and any
obtain a general license or permission for the use of such assurances of licenses to be made available, or the result of an
proprietary rights by implementors or users of this specification can attempt made to obtain a general license or permission for the use of
be obtained from the IETF Secretariat. such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF Executive this standard. Please address the information to the IETF at
Director. ietf-ipr@ietf.org.
Full Copyright Statement
Copyright (C) The Internet Society (2004). All Rights Reserved. Disclaimer of Validity
This document and translations of it may be copied and furnished to This document and the information contained herein are provided on an
others, and derivative works that comment on or otherwise explain it "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
or assist in its implementation may be prepared, copied, published OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
and distributed, in whole or in part, without restriction of any ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
kind, provided that the above copyright notice and this paragraph are INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
included on all such copies and derivative works. However, this INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
document itself may not be modified in any way, such as by removing WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
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 Copyright Statement
revoked by the Internet Society or its successors or assignees.
This document and the information contained herein is provided on an Copyright (C) The Internet Society (2004). This document is subject
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING to the rights, licenses and restrictions contained in BCP 78, and
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING except as set forth therein, the authors retain all their rights.
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.
Acknowledgment Acknowledgment
Funding for the RFC Editor function is currently provided by the Funding for the RFC Editor function is currently provided by the
Internet Society. Internet Society.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/