1
SIPPING Working Group A. Johnston
2
Internet Draft WorldCom
3
Document: draft-ietf-sipping-torture-tests-00.txt J. Rosenberg
4
Expires: February 2003 dynamicsoft
10
Session Initiation Protocol Torture Test Messages
15
This document is an Internet-Draft and is in full conformance with
16
all provisions of Section 10 of RFC2026.
18
Internet-Drafts are working documents of the Internet Engineering
19
Task Force (IETF), its areas, and its working groups. Note that
20
other groups may also distribute working documents as Internet-
23
Internet-Drafts are draft documents valid for a maximum of six months
24
and may be updated, replaced, or obsoleted by other documents at any
25
time. It is inappropriate to use Internet-Drafts as reference
26
material or to cite them other than as "work in progress."
28
The list of current Internet-Drafts can be accessed at
29
http://www.ietf.org/ietf/1id-abstracts.txt
30
The list of Internet-Draft Shadow Directories can be accessed at
31
http://www.ietf.org/shadow.html.
36
This informational document gives examples of Session Initiation
37
Protocol (SIP) test messages designed to exercise and "torture" a
38
parser. They were developed as part of the SIPit SIP
39
interoperability testing events.
42
Conventions used in this document
44
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
45
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
46
document are to be interpreted as described in RFC-2119 [1].
50
1. Overview.......................................................3
53
Johnston et al Expires - February 2003 [Page 1]
55
SIP Torture Test Messages August 2002
58
2. SIP Test Messages..............................................3
59
2.1 INVITE Parser Torture Test Message.........................3
60
2.2 INVITE with Proxy-Require and Require......................4
61
2.3 INVITE with Unknown Schemes in URIs........................5
62
2.4 REGISTER with Y2038 Test...................................5
63
2.5 INVITE with inconsistent Accept and message body...........6
64
2.6 INVITE with non-SDP message body...........................6
65
2.7 Unknown Method Message.....................................7
66
2.8 Unknown Method with CSeq Error.............................7
67
2.9 REGISTER with Unknown Authorization Scheme.................8
68
2.10 Multiple SIP Request in a Single Message..................8
69
2.11 INVITE missing Required Headers...........................9
70
2.12 INVITE with Duplicate Required Headers...................10
71
2.13 INVITE with Illegal Expires Header.......................10
72
2.14 200 OK Response with Broadcast Via Header................11
73
2.15 INVITE with Invalid Via and Contact Headers..............12
74
2.16 INVITE with Incorrect Content-Length Header..............12
75
2.17 INVITE with Invalid Value for Content-Length.............13
76
2.18 INVITE with Garbage after Message Body...................14
77
2.19 INVITE with Error in Display Name in To Header...........14
78
2.20 INVITE with a Semicolon-Separated Parameter in the "user"
79
Part..........................................................15
80
2.21 INVITE with Illegal Enclosing of Request-URI in "<>"....15
81
2.22 INVITE with Illegal LWS within Elements of Request-URI...16
82
2.23 INVITE with illegal >1 SP between elements of Request URI17
83
2.24 INVITE with a legal SIP URI containing escaped characters17
84
2.25 INVITE with the illegal use of escaped headers in Request-URI
85
..............................................................18
86
2.26 INVITE containing an unknown scheme in the Request URI...19
87
2.27 OPTIONS with no LWS between display name and <...........19
88
2.28 OPTIONS with extran LWS between display name and <.......20
89
2.29 INVITE with an illegal SIP Date format...................20
90
2.30 INVITE with Passed Expries Time..........................21
91
2.31 INVITE with Max-Forwards Set to Zero.....................21
92
2.32 REGISTER with a Escaped Header in a Legal SIP URI of a
93
Contact.......................................................22
94
2.33 REGISTER with a Escaped Header in a Illegal SIP URI of a
95
Contact.......................................................22
96
2.34 INVITE with Long Values in Headers.......................23
97
2.35 OPTIONS with multiple headers............................24
98
2.36 INVITE with large number of SDP attributes and telephone
99
subscriber Request-URI........................................25
100
2.37 REGISTER with a contact parameter........................26
101
2.38 REGISTER with a url parameter............................26
102
2.39 INVITE with an Unquoted Display Name Containing Multiple
103
Tokens........................................................26
104
2.40 INVITE with an Unquoted Display Name Containg Non-Token
105
Characters....................................................27
106
2.41 INVITE with Unknown (Higher) Protocol Version in Start Line27
107
2.42 INVITE with RFC2543 syntax...............................28
108
Security Considerations..........................................28
109
References.......................................................28
110
Acknowledgments..................................................29
111
Author's Addresses...............................................29
115
These SIP test messages are based on the current version 2.0 of SIP
116
in RFC 3261[2] with SDP usage described in RFC 3264[3].
118
Note that this document is informational, and is NOT NORMATIVE on any
119
aspect of SIP syntax.
123
The files in here are test messages for SIP servers to exercise
124
various functions. They have been used in SIPit
125
interoperability events. All messages shown here are valid, unless
126
otherwise noted. The correct behavior of servers and clients is also
129
2.1 INVITE Parser Torture Test Message
131
This message is a correctly formatted SIP message. It contains:
133
line folding all over
134
escaped characters within quotes
135
LWS between colons, semicolons, headers, and other fields
136
both comma separated and separate listing of headers
137
mix or short and long form for the same header
139
unusual header ordering
140
unknown parameters of a known header
142
Proxies should forward message and clients should respond as to a
143
normal INVITE message.
148
INVITE sip:vivekg@chair.dnrc.bell-labs.com SIP/2.0
150
sip:vivekg@chair.dnrc.bell-labs.com ; tag = 1918181833n
151
From : "J Rosenberg \\\"" <sip:jdrosen@lucent.com> ;
154
Call-ID: 0ha0isndaksdj@10.1.1.1
157
Johnston et al Expires - February 2002 [Page 3]
159
SIP Torture Test Messages August 2002
166
135.180.130.133;branch=z9hG4bKkdjuw
168
NewFangledHeader: newfangled value
169
more newfangled value
170
Content-Type: application/sdp
171
v: SIP / 2.0 / TCP 1192.168.156.222 ;
173
SIP / 2.0 / UDP 192.168.255.111 ; hidden
174
m:"Quoted string \"\"" <sip:jdrosen@bell-labs.com> ; newparam =
176
secondparam = secondvalue ; q = 0.33,
180
o=mhandley 29739 7272939 IN IP4 126.5.4.3
182
c=IN IP4 135.180.130.88
184
m=audio 492170 RTP/AVP 0 12
185
m=video 3227 RTP/AVP 31
189
2.2 INVITE with Proxy-Require and Require
191
This message tests support for Proxy-Require and Require. It is a
192
request that contains both headers, listing new features.
194
Proxies and clients should respond with a 420 Bad Extension, and an
195
Unsupported header listing these features.
199
INVITE sip:user@company.com SIP/2.0
200
To: sip:j_user@company.com
201
From: sip:caller@university.edu;tag=242etr
203
Call-ID: 0ha0isndaksdj@10.1.1.1
204
Require: newfeature1, newfeature2
205
Proxy-Require: newfeature3, newfeature4
207
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
213
Johnston et al Expires - February 2002 [Page 4]
215
SIP Torture Test Messages August 2002
218
2.3 INVITE with Unknown Schemes in URIs
220
This message contains unknown schemes in the Request URI, To, From
221
and Contact headers of a request.
223
A server should probably return a not found error; but other
224
behaviors are acceptable.
229
INVITE name:John_Smith SIP/2.0
231
From: <http://www.cs.columbia.edu>;tag=3234233
232
Call-ID: 0ha0isndaksdj@10.1.2.3
235
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
236
Content-Type: application/sdp
239
o=mhandley 29739 7272939 IN IP4 126.5.4.3
241
c=IN IP4 135.180.130.88
243
m=audio 492170 RTP/AVP 0 12
244
m=video 3227 RTP/AVP 31
249
2.4 REGISTER with Y2038 Test
251
This message is a registration request with an expiration year of
252
2040. This makes sure that a server doesn't crash on seeing a date
255
The correct behavior is probably to limit the lifetime to some
261
REGISTER sip:company.com SIP/2.0
262
To: sip:user@company.com
263
From: sip:user@company.com;tag=3411345
265
Contact: sip:user@host.company.com
266
Call-ID: 0ha0isndaksdj@10.0.0.1
269
Johnston et al Expires - February 2002 [Page 5]
271
SIP Torture Test Messages August 2002
275
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
276
Expires: Sat, 01 Dec 2040 16:00:00 GMT
280
2.5 INVITE with inconsistent Accept and message body
282
This is a UAS test. It is a request that includes an Accept header
283
without SDP. The UAS should respond with an error.
288
INVITE sip:user@company.com SIP/2.0
289
To: sip:j_user@company.com
290
From: sip:caller@university.edu;tag=234
292
Call-ID: 0ha0isndaksdj@10.0.0.1
293
Accept: text/newformat
295
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
296
Content-Type: application/sdp
299
c=IN IP4 135.180.130.88
300
m=audio 492170 RTP/AVP 0 12
301
m=video 3227 RTP/AVP 31
306
2.6 INVITE with non-SDP message body
308
This is a test of a user agent server. It is a request that includes
309
a body of a non-SDP type.
311
The user agent server should respond with an error.
315
INVITE sip:user@comapny.com SIP/2.0
316
To: sip:j.user@company.com
317
From: sip:caller@university.edu;tag=8
319
Call-ID: 0ha0isndaksdj@10.0.0.1
321
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
322
Content-Type: application/newformat
325
Johnston et al Expires - February 2002 [Page 6]
327
SIP Torture Test Messages August 2002
331
<audio> <pcmu port="443"/> </audio> 2.7 Unknown Method Message
333
This request message contains a new unknown method, NEWMETHOD.
335
A proxy should forward this using the same retransmission rules as
336
BYE. A UAS should reject it with an error, and list the available
337
methods in the response.
342
NEWMETHOD sip:user@comapny.com SIP/2.0
343
To: sip:j.user@company.com
344
From: sip:caller@university.edu;tag=34525
346
Call-ID: 0ha0isndaksdj@10.0.0.1
348
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
349
Content-Type: application/sdp
352
o=mhandley 29739 7272939 IN IP4 126.5.4.3
353
c=IN IP4 135.180.130.88
354
m=audio 492170 RTP/AVP 0 12
355
m=video 3227 RTP/AVP 31
360
2.8 Unknown Method with CSeq Error
362
This message is nearly identical to the Unknown Method message. It is
363
a request with a new unknown method, but with a CSeq method tag which
366
A proxy should either respond with an error, or correct the method
367
tag. The user agent should reject it with an error, and list the
368
available methods in the response.
373
NEWMETHOD sip:user@comapny.com SIP/2.0
374
To: sip:j.user@company.com
375
From: sip:caller@university.edu;tag=23411413
377
Call-ID: 0ha0isndaksdj@10.0.1.1
379
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
380
Content-Type: application/sdp
383
o=mhandley 29739 7272939 IN IP4 126.5.4.3
385
c=IN IP4 135.180.130.88
387
m=audio 492170 RTP/AVP 0 12
388
m=video 3227 RTP/AVP 31
393
2.9 REGISTER with Unknown Authorization Scheme
395
This message is a REGISTER request with an unknown authorization
398
The server should do something reasonable, such as rejecting the
403
REGISTER sip:company.com SIP/2.0
404
To: sip:j.user@company.com
405
From: sip:j.user@company.com;tag=87321hj23128
407
Call-ID: 0ha0isndaksdj@10.0.1.1
409
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
410
Authorization: Super-PGP ajsohdaosdh0asyhdaind08yasdknasd09asidhas0d8
413
2.10 Multiple SIP Request in a Single Message
415
This message contains two requests, separated by a bunch of
416
whitespace. Since the message exceeds the length indicated in the
417
Content-Length header, the message should be rejected. (Multiple SIP
418
requests per UDP packet are no longer allowed.)
422
REGISTER sip:company.com SIP/2.0
423
To: sip:j.user@company.com
424
From: sip:j.user@company.com;tag=43251j3j324
426
Call-ID: 0ha0isndaksdj@10.0.2.2
427
Contact: sip:j.user@host.company.com
429
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
433
INVITE sip:joe@company.com SIP/2.0
434
To: sip:joe@company.com
435
From: sip:caller@university.edu;tag=141334
437
Call-ID: 0ha0isnda977644900765@10.0.0.1
439
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
440
Content-Type: application/sdp
443
o=mhandley 29739 7272939 IN IP4 126.5.4.3
445
c=IN IP4 135.180.130.88
447
m=audio 492170 RTP/AVP 0 12
448
m =video 3227 RTP/AVP 31
453
2.11 INVITE missing Required Headers
455
This message contains no Call-ID, From, or To header.
457
The server should not crash, and ideally should respond with an
462
INVITE sip:user@company.com SIP/2.0
464
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
465
Content-Type: application/sdp
468
o=mhandley 29739 7272939 IN IP4 126.5.4.3
470
c=IN IP4 135.180.130.88
472
m=audio 492170 RTP/AVP 0 12
473
m=video 3227 RTP/AVP 31
478
2.12 INVITE with Duplicate Required Headers
480
The message contains a request with an extra Call-ID and To field.
482
The server should not crash, and should ideally respond with an
487
INVITE sip:user@company.com SIP/2.0
488
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
491
Call-ID: 98asdh@10.1.1.1
492
Call-ID: 98asdh@10.1.1.2
493
From: sip:caller@university.edu;tag=3413415
494
From: sip:caller@organization.org
495
To: sip:user@company.com
496
Content-Type: application/sdp
499
o=mhandley 29739 7272939 IN IP4 126.5.4.3
501
c=IN IP4 135.180.130.88
503
m=audio 492170 RTP/AVP 0 12
504
m=video 3227 RTP/AVP 31
507
2.13 INVITE with Illegal Expires Header
509
This message contains an Expires header which has illegal values for
510
a number of components, but otherwise is syntactically correct.
514
INVITE sip:user@company.com SIP/2.0
515
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
518
Call-ID: 98asdh@10.1.1.2
519
Expires: Thu, 44 Dec 19999 16:00:00 EDT
520
From: sip:caller@university.edu;tag=3651
521
To: sip:user@company.com
522
Content-Type: application/sdp
525
o=mhandley 29739 7272939 IN IP4 126.5.4.3
527
c=IN IP4 135.180.130.88
529
m=audio 492170 RTP/AVP 0 12
530
m=video 3227 RTP/AVP 31
534
2.14 200 OK Response with Broadcast Via Header
536
This message is a response with a 2nd Via header of 255.255.255.255.
538
On receiving this response, the top Via header is stripped and the
539
packet forwarded. Since the next address is the broadcast address,
540
it causes the packet to be broadcast onto the network. A smart server
541
should ignore packets with 2nd Via headers that are 255.255.255.255
542
or 127.0.0.1. At the very least it should not crash.
548
Via: SIP/2.0/UDP 135.180.130.57;branch=0
549
Via: SIP/2.0/UDP 255.255.255.255;branch=0
551
Call-ID: 0384840201@10.1.1.1
553
From: sip:user@company.com;tag=11141343
554
To: sip:user@university.edu;tag=2229
555
Content-Type: application/sdp
558
o=mhandley 29739 7272939 IN IP4 126.5.4.3
560
c=IN IP4 224.2.17.12/127
562
m=audio 492170 RTP/AVP 0 12
563
m=video 3227 RTP/AVP 31
567
2.15 INVITE with Invalid Via and Contact Headers
569
This is a request with the Via and Contact headers incorrect. They
570
contain additional semicolons and commas without parameters or
573
The server should respond with a Bad Request error.
578
INVITE sip:user@company.com SIP/2.0
579
To: sip:j.user@company.com
580
From: sip:caller@university.edu;tag=134161461246
582
Call-ID: 0ha0isndaksdj@10.0.0.1
584
Via: SIP/2.0/UDP 135.180.130.133;;,;
585
Contact: "" <> ;,"Joe" <sip:joe@org.org>;;,,;;
586
Content-Type: application/sdp
589
o=mhandley 29739 7272939 IN IP4 126.5.4.3
591
c=IN IP4 135.180.130.88
593
m=audio 492170 RTP/AVP 0 12
594
m=video 3227 RTP/AVP 31
598
2.16 INVITE with Incorrect Content-Length Header
600
This is a request message with a Content Length that is much larger
601
than the length of the body.
603
When sent UDP, the server should respond with an error. With TCP,
604
there's not much you can do but wait...
608
INVITE sip:user@company.com SIP/2.0
610
To: sip:j.user@company.com
611
From: sip:caller@university.edu;tag=93942939o2
612
Call-ID: 0ha0isndaksdj@10.0.0.1
614
Via: SIP/2.0/UDP 135.180.130.133
615
Content-Type: application/sdp
619
o=mhandley 29739 7272939 IN IP4 126.5.4.3
621
c=IN IP4 135.180.130.88
623
m=audio 492170 RTP/AVP 0 12
624
m=video 3227 RTP/AVP 31
627
2.17 INVITE with Invalid Value for Content-Length
629
This is a request message with a negative value for Content-Length.
631
The server should respond with an error.
635
INVITE sip:user@company.com SIP/2.0
637
To: sip:j.user@company.com
638
From: sip:caller@university.edu;tag=3
639
Call-ID: 0ha0isndaksdj@10.0.0.1
641
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
642
Content-Type: application/sdp
646
o=mhandley 29739 7272939 IN IP4 126.5.4.3
648
c=IN IP4 135.180.130.88
650
m=audio 492170 RTP/AVP 0 12
651
m=video 3227 RTP/AVP 31
655
2.18 INVITE with Garbage after Message Body
658
This is a request message with garbage after the end of the SDP
659
included in the body.
661
The servers should reject the request as the body is longer than the
667
INVITE sip:user@company.com SIP/2.0
668
To: sip:j.user@company.com
669
From: sip:caller@university.edu;tag=3223
671
Call-ID: 0ha0isndaksdj@10.0.0.1
673
Via: SIP/2.0/UDP 135.180.130.133
674
Content-Type: application/sdp
678
o=mhandley 29739 7272939 IN IP4 126.5.4.3
680
c=IN IP4 135.180.130.88
682
m=audio 492170 RTP/AVP 0 12
683
m=video 3227 RTP/AVP 31
685
asdpasd08asdsdk:;;asd
686
a0sdjhg8a0''...'';;;;
689
2.19 INVITE with Error in Display Name in To Header
691
This is a request with an unterminated quote in the display name of
694
The server can either return an error, or proxy it if it is
695
successful parsing without the terminating quote.
699
INVITE sip:user@company.com SIP/2.0
700
To: "Mr. J. User <sip:j.user@company.com> From: sip:caller@university.edu;tag=93334
702
Call-ID: 0ha0isndaksdj@10.0.0.1
704
Via: SIP/2.0/UDP 135.180.130.133:5050;branch=z9hG4bKkdjuw
705
Content-Type: application/sdp
709
o=mhandley 29739 7272939 IN IP4 126.5.4.3
711
c=IN IP4 135.180.130.88
713
m=audio 492170 RTP/AVP 0 12
714
m=video 3227 RTP/AVP 31
717
2.20 INVITE with a Semicolon-Separated Parameter in the "user" Part
719
This is an INVITE request with a semicolon-separated parameter in
722
Outbound proxies should direct it appropriately.
727
INVITE sip:user;par=u%40h.com@company.com SIP/2.0
728
To: sip:j_user@company.com
729
From: sip:caller@university.edu;tag=33242
731
Call-ID: 0ha0isndaksdj@10.1.1.1
733
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
737
2.21 INVITE with Illegal Enclosing of Request-URI in "<>"
739
This INVITE is illegal because the Request-URI has been enclosed
742
An intelligent server may be able to deal with this and fix up
743
athe Request-URI if acting as a Proxy. If not it should respond 400
744
with an appropriate reason phrase.
749
INVITE <sip:user@company.com> SIP/2.0
750
To: sip:user@company.com
751
From: sip:caller@university.edu;tag=39291
755
Via: SIP/2.0/UDP 135.180.130.133
756
Content-Type: application/sdp
760
o=mhandley 29739 7272939 IN IP4 126.5.4.3
762
c=IN IP4 135.180.130.88
764
m=audio 492170 RTP/AVP 0 12
765
m=video 3227 RTP/AVP 31
769
2.22 INVITE with Illegal LWS within Elements of Request-URI
771
This INVITE has illegal LWS within the SIP URI.
773
An intelligent server may be able to deal with this and fix up
774
the Request-URI if acting as a Proxy. If not it should respond 400
775
with an appropriate reason phrase.
779
INVITE sip:user@company.com; transport=udp SIP/2.0
780
To: sip:user@company.com
781
From: sip:caller@university.edu;tag=231413434
785
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
786
Content-Type: application/sdp
790
o=mhandley 29739 7272939 IN IP4 126.5.4.3
792
c=IN IP4 135.180.130.88
794
m=audio 492170 RTP/AVP 0 12
795
m=video 3227 RTP/AVP 31
799
2.23 INVITE with illegal >1 SP between elements of Request URI
801
This INVITE has illegal >1 SP between elements of the Request-URI.
803
An intelligent server may be able to deal with this and fix up
804
the Request-URI if acting as a Proxy. If not it should respond 400
805
with an appropriate reason phrase.
810
INVITE sip:user@company.com SIP/2.0
812
To: sip:user@company.com
813
From: sip:caller@university.edu;tag=8814
816
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
817
Content-Type: application/sdp
821
o=mhandley 29739 7272939 IN IP4 126.5.4.3
823
c=IN IP4 135.180.130.88
825
m=audio 492170 RTP/AVP 0 12
826
m=video 3227 RTP/AVP 31
831
2.24 INVITE with a legal SIP URI containing escaped characters
833
This INVITE is legal and has a Request-URI with a SIP URI containing
838
INVITE sip:sip%3Auser%40example.com@company.com;other-param=summit
840
To: sip:user@company.com
841
From: sip:caller@university.edu;tag=938
845
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
846
Content-Type: application/sdp
850
o=mhandley 29739 7272939 IN IP4 126.5.4.3
852
c=IN IP4 135.180.130.88
854
m=audio 492170 RTP/AVP 0 12
855
m=video 3227 RTP/AVP 31
859
2.25 INVITE with the illegal use of escaped headers in Request-URI
861
This INVITE is illegal as it the Request-URI contains a SIP URI
865
An intelligent server may be liberal enough to accept this. A server
866
acting as a proxy should remove the escaped header before processing.
871
INVITE sip:user@company.com?Route=%3Csip:sip.example.com%3E SIP/2.0
872
To: sip:user@company.com
873
From: sip:caller@university.edu;tag=341518
877
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
878
Content-Type: application/sdp
882
o=mhandley 29739 7272939 IN IP4 126.5.4.3
884
c=IN IP4 135.180.130.88
886
m=audio 492170 RTP/AVP 0 12
887
m=video 3227 RTP/AVP 31
892
2.26 INVITE containing an unknown scheme in the Request URI
894
This INVITE contains an unknown URI scheme in the Request-URI.
896
A server should reject this message with a 400 response plus an
897
appropriate reason phrase despite being able to understand the
898
To header as a SIP URI.
903
INVITE name:user SIP/2.0
904
To: sip:user@company.com
905
From: sip:caller@university.edu;tag=384
909
Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw
910
Content-Type: application/sdp
914
o=mhandley 29739 7272939 IN IP4 126.5.4.3
916
c=IN IP4 135.180.130.88
918
m=audio 492170 RTP/AVP 0 12
919
m=video 3227 RTP/AVP 31
924
2.27 OPTIONS with no LWS between display name and < This OPTIONS request is legal despite there being no LWS between
925
the display name and < in the From header.
930
OPTIONS sip:user@company.com SIP/2.0
931
To: sip:user@company.com
932
From: "caller"<sip:caller@example.com>;tag=323
934
Call-ID: 1234abcd@10.0.0.1
936
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
939
2.28 OPTIONS with extran LWS between display name and < This OPTIONS request is legal despite there being extra LWS between
940
the display name and < in the From header.
945
OPTIONS sip:user@company.com SIP/2.0
946
To: sip:user@company.com
947
From: "caller" <sip:caller@example.com>;tag=32
949
Call-ID: 1234abcd@10.0.0.1
951
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
955
2.29 INVITE with an illegal SIP Date format.
957
This INVITE is illegal as it contains a non GMT time zone in the SIP
960
An intelligent server may be able to fix this up and correct the time
961
to GMT. Alternatively this message may illicit a 400 response with an
962
appropriate reason phrase.
967
INVITE sip:user@company.com SIP/2.0
968
To: sip:user@company.com
969
From: sip:caller@university.edu;tag=2
973
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
974
Date: Fri, 01 Jan 2010 16:00:00 EST
975
Content-Type: application/sdp
978
o=mhandley 29739 7272939 IN IP4 126.5.4.3
980
c=IN IP4 135.180.130.88
982
m=audio 492170 RTP/AVP 0 12
983
m=video 3227 RTP/AVP 31
988
2.30 INVITE with Passed Expries Time
990
This is a legal INVITE but the message content has long since
993
A server should respond 408 (Timeout).
998
INVITE sip:user@company.com SIP/2.0
999
To: sip:user@company.com
1000
From: sip:caller@university.edu;tag=3843
1004
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
1005
Expires: Thu, 01 Dec 1994 16:00:00 GMT
1006
Content-Type: application/sdp
1010
o=mhandley 29739 7272939 IN IP4 126.5.4.3
1012
c=IN IP4 135.180.130.88
1014
m=audio 492170 RTP/AVP 0 12
1015
m=video 3227 RTP/AVP 31
1020
2.31 INVITE with Max-Forwards Set to Zero
1022
This is a legal SIP request with the Max-Forwards header set to zero.
1024
A proxy or gateway should not forward the request and respond 483
1029
INVITE sip:user@company.com SIP/2.0
1030
To: sip:user@company.com
1031
From: sip:caller@university.edu;tag=3ghsd41
1034
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
1036
Content-Type: application/sdp
1040
o=mhandley 29739 7272939 IN IP4 126.5.4.3
1042
c=IN IP4 135.180.130.88
1044
m=audio 492170 RTP/AVP 0 12
1045
m=video 3227 RTP/AVP 31
1050
2.32 REGISTER with a Escaped Header in a Legal SIP URI of a Contact
1053
This is a legal REGISTER message where the Contact header contains a
1054
SIP URI with an escaped header within it.
1059
REGISTER sip:company.com SIP/2.0
1060
To: sip:user@company.com
1061
From: sip:user@company.com;tag=8
1063
Contact: sip:user@host.company.com
1064
Call-ID: k345asrl3fdbv@10.0.0.1
1066
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
1067
Contact: <sip:user@example.com?Route=%3Csip:sip.example.com%3E>
1070
2.33 REGISTER with a Escaped Header in a Illegal SIP URI of a Contact
1072
This is an illegal message as the REGISTER request contains a SIP
1074
URI with an escaped header but it is not enclosed in <> A server should respond 400 with an appropriate reason phrase.
1079
REGISTER sip:company.com SIP/2.0
1080
To: sip:user@company.com
1081
From: sip:user@company.com;tag=998332
1083
Contact: sip:user@host.company.com
1084
Call-ID: k345asrl3fdbv@10.0.0.1
1086
Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
1087
Contact: sip:user@example.com?Route=%3Csip:sip.example.com%3E
1091
2.34 INVITE with Long Values in Headers
1093
This is a legal message that contains long values in many headers.
1098
INVITE sip:user@company.com SIP/2.0
1099
To: "I have a user name of extreme proportion"
1100
<sip:user@company.com:6000;other-
1101
param=1234567890somethingelselong1234567890> From: sip:caller@university.edu;tag=12481841982424
1103
kl24ahsd546folnyt2vbak9sad98u23naodiunzds09a3bqw0sdfbsk34poouymnae004
1104
3nsed09mfkvc74bd0cuwnms05dknw87hjpobd76f
1106
P-My-State: sldkjflzdsfaret0803adgaasd0afds0asdaasd
1107
Via: SIP/2.0/TCP sip33.example.com
1108
Via: SIP/2.0/TCP sip32.example.com
1109
Via: SIP/2.0/TCP sip31.example.com
1110
Via: SIP/2.0/TCP sip30.example.com
1111
Via: SIP/2.0/TCP sip29.example.com
1112
Via: SIP/2.0/TCP sip28.example.com
1113
Via: SIP/2.0/TCP sip27.example.com
1114
Via: SIP/2.0/TCP sip26.example.com
1115
Via: SIP/2.0/TCP sip25.example.com
1116
Via: SIP/2.0/TCP sip24.example.com
1117
Via: SIP/2.0/TCP sip23.example.com
1118
Via: SIP/2.0/TCP sip22.example.com
1119
Via: SIP/2.0/TCP sip21.example.com
1120
Via: SIP/2.0/TCP sip20.example.com
1121
Via: SIP/2.0/TCP sip19.example.com
1122
Via: SIP/2.0/TCP sip18.example.com
1123
Via: SIP/2.0/TCP sip17.example.com
1124
Via: SIP/2.0/TCP sip16.example.com
1125
Via: SIP/2.0/TCP sip15.example.com
1126
Via: SIP/2.0/TCP sip14.example.com
1127
Via: SIP/2.0/TCP sip13.example.com
1128
Via: SIP/2.0/TCP sip12.example.com
1129
Via: SIP/2.0/TCP sip11.example.com
1130
Via: SIP/2.0/TCP sip10.example.com
1131
Via: SIP/2.0/TCP sip9.example.com
1132
Via: SIP/2.0/TCP sip8.example.com
1133
Via: SIP/2.0/TCP sip7.example.com
1134
Via: SIP/2.0/TCP sip6.example.com
1135
Via: SIP/2.0/TCP sip5.example.com
1136
Via: SIP/2.0/TCP sip4.example.com
1137
Via: SIP/2.0/TCP sip3.example.com
1138
Via: SIP/2.0/TCP sip2.example.com
1139
Via: SIP/2.0/TCP sip1.example.com
1141
host.example.com;received=135.180.130.133;branch=C1C3344E2710000000E2
1142
99E568E7potato10potato0potato0
1143
Content-Type: application/sdp
1146
o=mhandley 29739 7272939 IN IP4 126.5.4.3
1148
c=IN IP4 135.180.130.88
1150
m=audio 492170 RTP/AVP 0 12
1151
m=video 3227 RTP/AVP 31
1156
2.35 OPTIONS with multiple headers.
1158
This is an illegal and badly mangled message.
1160
A server should respond 400 with an appropriate reason phrase if it
1161
can. It may just drop this message.
1166
OPTIONS sip:135.180.130.133 SIP/2.0
1167
Via: SIP/2.0/UDP company.com:5604
1169
From: sip:iuser@company.com;tag=74345345
1170
To: sip:user@135.180.130.133
1171
Call-ID: 1804928587@company.com
1173
Expires: 0 0l@company.com
1174
To: sip:user@135.180.130.133
1175
Call-ID: 1804928587@company.com
1177
Contact: sip:host.company.com
1178
Expires: 0xpires: 0sip:host.company.com
1180
Contact: sip:host.company.com
1184
2.36 INVITE with large number of SDP attributes and telephone subscriber
1187
This is a legal message with a large number of SDP attributes and a
1188
long telephone subscriber Request-URI
1193
INVITE sip:+19725552222;phone-
1194
context=name%40domain;new=user?%22Route%3a%20X%40Y%3bZ=W%22@gw1.atlan
1195
ta.com;user=phone SIP/2.0
1196
Via: SIP/2.0/UDP iftgw.biloxi.com:5060;branch=z9hG4bKjeefr3
1199
<sip:+13035551111@ift.client.atlanta.com;user=phone>;tag=332lflke
1200
To: sip:+16555552222@ss1.atlanta.com;user=phone
1201
Call-ID: 1717@ift.client.atlanta.com
1203
Content-Type: application/sdp
1207
o=faxgw1 2890844527 2890844527 IN IP4 iftgw.biloxi.com
1209
c=IN IP4 iftmg.biloxi.com
1211
m=image 49172 udptl t38
1213
a=T38maxBitRate:14400
1214
a=T38FaxFillBitRemoval:0
1215
a=T38FaxTranscodingMMR:0
1216
a=T38FaxTranscodingJBIG:0
1217
a=T38FaxRateManagement:transferredTCF
1218
a=T38FaxMaxBuffer:260
1219
a=T38FaxUdpEC:t38UDPR
1223
2.37 REGISTER with a contact parameter.
1225
This REGISTER contains a contact where the 'user' parameter should be
1226
interpreted as being a contact-param and not a url-param.
1228
The register should succeed but a subsequent retrieval of the
1229
registration must not include "user=phone" as a url-parameter.
1233
REGISTER sip:bell-tel.com SIP/2.0
1234
Via: SIP/2.0/UDP saturn.bell-tel.com:5060;branch=z9hG4bKkdjuw
1236
From: sip:watson@bell-tel.com;tag=DkfVgjkrtMwaerKKpe
1237
To: sip:watson@bell-tel.com
1238
Call-ID: 70710@saturn.bell-tel.com
1240
Contact: sip:+19725552222@gw1.atlanta.com;user=phone
1244
2.38 REGISTER with a url parameter.
1246
This register contains a contact where the 'user'parameter is a url-
1249
The register should succeed and a subsequent retrieval of the
1251
include "user=phone" as a url-parameter.
1255
REGISTER sip:bell-tel.com SIP/2.0
1256
Via: SIP/2.0/UDP saturn.bell-tel.com:5060;branch=z9hG4bKkdjuw
1258
From: sip:watson@bell-tel.com;tag=838293
1259
To: sip:watson@bell-tel.com
1260
Call-ID: 70710@saturn.bell-tel.com
1262
Contact: <sip:+19725552222@gw1.atlanta.com;user=phone>
1264
2.39 INVITE with an Unquoted Display Name Containing Multiple Tokens
1266
This is a legal INVITE where the To and From header contain display
1267
names that contain multiple tokens but are unquoted.
1272
INVITE sip:t.watson@ieee.org SIP/2.0
1273
Via: SIP/2.0/UDP c.bell-tel.com:5060;branch=z9hG4bKkdjuw
1275
From: A. Bell <sip:a.g.bell@bell-tel.com>;tag=459843
1276
To: T. Watson <sip:t.watson@ieee.org> Call-ID: 31414@c.bell-tel.com
1281
2.40 INVITE with an Unquoted Display Name Containg Non-Token Characters
1283
This is an illegal invite at the display names in the To and From
1284
headers contain non-token characters but are unquoted.
1286
A server may be intelligent enough to cope with this but may also
1287
return a 400 response with an appropriate reason phrase.
1292
INVITE sip:t.watson@ieee.org SIP/2.0
1293
Via: SIP/2.0/UDP c.bell-tel.com:5060;branch=z9hG4bKkdjuw
1295
From: Bell, Alexander <sip:a.g.bell@bell-tel.com>;tag=43
1296
To: Watson, Thomas <sip:t.watson@ieee.org> Call-ID: 31415@c.bell-tel.com
1301
2.41 INVITE with Unknown (Higher) Protocol Version in Start Line
1303
This is an illegal INVITE as the SIP Protocol version is unknown.
1305
The server should respond to the request with a bad version error.
1310
INVITE sip:t.watson@ieee.org SIP/7.0
1311
Via: SIP/2.0/UDP c.bell-tel.com;branch=z9hG4bKkdjuw
1313
From: A. Bell <sip:a.g.bell@bell-tel.com>;tag=qweoiqpe
1314
To: T. Watson <sip:t.watson@ieee.org> Call-ID: 31417@c.bell-tel.com
1318
2.42 INVITE with RFC2543 syntax
1320
This is a legal message per RFC 2543 which should be accepted by RFC
1321
3261 elements which want to maintain backwards compatibility.
1326
INVITE sip:UserB@biloxi.com SIP/2.0
1327
Via: SIP/2.0/UDP iftgw.biloxi.com
1328
From: <sip:+13035551111@ift.client.atlanta.com;user=phone>;tag=93752
1329
Record-Route: <sip:UserB@biloxi.com;maddr=ss1.wcom.com> To: sip:+16505552222@ss1.atlanta.com;user=phone
1330
Call-ID: 1717@ift.client.atlanta.com
1335
Security Considerations
1337
Since this document represents NON NORMATIVE examples of SIP session
1338
establishment, the security considerations in RFC 3261 [2] apply.
1343
1 Bradner, S., "Key words for use in RFCs to Indicate Requirement
1344
Levels", BCP 14, RFC 2119, March 1997
1346
2 J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston,
1347
J. Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP:
1348
Session Initiation Protocol", RFC 3261, June 2002.
1350
3 J.Rosenberg and H.Schulzrinne, "An Offer/Answer Model
1351
with SDP", Internet Engineering Task Force, RFC 3264, April 2002.
1362
Johnston et al Expires - February 2002 [Page 28]
1364
SIP Torture Test Messages August 2002
1369
Thanks to Rohan Mahy, Adam Roach, Gonzalo Camarillo, Cullen Jennings,
1370
and Tom Taylor for their detailed comments during the final final
1371
review. Thanks to Vijay Gurbani for his comments.
1373
The authors wish to thank Neil Deason for his additions to the
1374
Torture Test messages and Kundan Singh for performing parser
1375
validation of messages.
1377
The authors wish to thank the following individuals for their
1378
participation in the final review of this call flows document: Aseem
1379
Agarwal, Rafi Assadi, Ben Campbell, Sunitha Kumar, Jon Peterson, Marc
1380
Petit-Huguenin, Vidhi Rastogi, and Bodgey Yin Shaohua.
1382
The authors also wish to thank the following individuals for their
1383
assistance: Jean-Francois Mule, Hemant Agrawal, Henry Sinnreich,
1384
David Devanatham, Joe Pizzimenti, Matt Cannon, John Hearty, the whole
1385
MCI WorldCom IPOP Design team, Scott Orton, Greg Osterhout, Pat
1386
Sollee, Doug Weisenberg, Danny Mistry, Steve McKinnon, and Denise
1387
Ingram, Denise Caballero, Tom Redman, Ilya Slain, Pat Sollee, John
1388
Truetken, and others from MCI WorldCom, 3Com, Cisco, Lucent and
1395
100 South 4th Street
1399
EMail: alan.johnston@wcom.com
1404
East Hanover, NJ 07936
1407
EMail: jdrosen@dynamicsoft.com
1411
Dept. of Computer Science
1413
1214 Amsterdam Avenue
1418
Johnston et al Expires - February 2002 [Page 29]
1420
SIP Torture Test Messages August 2002
1424
EMail: schulzrinne@cs.columbia.edu
1430
"Copyright (C) The Internet Society 2002. All Rights Reserved.
1432
This document and translations of it may be copied and furnished to
1433
others, and derivative works that comment on or otherwise explain it
1434
or assist in its implementation may be prepared, copied, published
1435
and distributed, in whole or in part, without restriction of any
1436
kind, provided that the above copyright notice and this paragraph are
1437
included on all such copies and derivative works. However, this
1438
document itself may not be modified in any way, such as by removing
1439
the copyright notice or references to the Internet Society or other
1440
Internet organizations, except as needed for the purpose of
1441
developing Internet standards in which case the procedures for
1442
copyrights defined in the Internet Standards process must be
1443
followed, or as required to translate it into languages other than
1446
The limited permissions granted above are perpetual and will not be
1447
revoked by the Internet Society or its successors or assigns.
1449
This document and the information contained herein is provided on an
1450
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
1451
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
1452
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
1453
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
1454
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1459
Funding for the RFC Editor function is currently provided by the
1473
Johnston et al Expires - February 2002 [Page 30]