📄 torture-test.txt
字号:
SIPPING Working Group A. Johnston Internet Draft WorldCom Document: draft-ietf-sipping-torture-tests-00.txt J. Rosenberg Expires: February 2003 dynamicsoft H. Schulzrinne Columbia U. August 2002 Session Initiation Protocol Torture Test Messages Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This informational document gives examples of Session Initiation Protocol (SIP) test messages designed to exercise and "torture" a parser. They were developed as part of the SIPit SIP interoperability testing events. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [1]. Table of Contents 1. Overview.......................................................3 Johnston et al Expires - February 2003 [Page 1] SIP Torture Test Messages August 2002 2. SIP Test Messages..............................................3 2.1 INVITE Parser Torture Test Message.........................3 2.2 INVITE with Proxy-Require and Require......................4 2.3 INVITE with Unknown Schemes in URIs........................5 2.4 REGISTER with Y2038 Test...................................5 2.5 INVITE with inconsistent Accept and message body...........6 2.6 INVITE with non-SDP message body...........................6 2.7 Unknown Method Message.....................................7 2.8 Unknown Method with CSeq Error.............................7 2.9 REGISTER with Unknown Authorization Scheme.................8 2.10 Multiple SIP Request in a Single Message..................8 2.11 INVITE missing Required Headers...........................9 2.12 INVITE with Duplicate Required Headers...................10 2.13 INVITE with Illegal Expires Header.......................10 2.14 200 OK Response with Broadcast Via Header................11 2.15 INVITE with Invalid Via and Contact Headers..............12 2.16 INVITE with Incorrect Content-Length Header..............12 2.17 INVITE with Invalid Value for Content-Length.............13 2.18 INVITE with Garbage after Message Body...................14 2.19 INVITE with Error in Display Name in To Header...........14 2.20 INVITE with a Semicolon-Separated Parameter in the "user" Part..........................................................15 2.21 INVITE with Illegal Enclosing of Request-URI in "<>"....15 2.22 INVITE with Illegal LWS within Elements of Request-URI...16 2.23 INVITE with illegal >1 SP between elements of Request URI17 2.24 INVITE with a legal SIP URI containing escaped characters17 2.25 INVITE with the illegal use of escaped headers in Request-URI ..............................................................18 2.26 INVITE containing an unknown scheme in the Request URI...19 2.27 OPTIONS with no LWS between display name and <...........19 2.28 OPTIONS with extran LWS between display name and <.......20 2.29 INVITE with an illegal SIP Date format...................20 2.30 INVITE with Passed Expries Time..........................21 2.31 INVITE with Max-Forwards Set to Zero.....................21 2.32 REGISTER with a Escaped Header in a Legal SIP URI of a Contact.......................................................22 2.33 REGISTER with a Escaped Header in a Illegal SIP URI of a Contact.......................................................22 2.34 INVITE with Long Values in Headers.......................23 2.35 OPTIONS with multiple headers............................24 2.36 INVITE with large number of SDP attributes and telephone subscriber Request-URI........................................25 2.37 REGISTER with a contact parameter........................26 2.38 REGISTER with a url parameter............................26 2.39 INVITE with an Unquoted Display Name Containing Multiple Tokens........................................................26 2.40 INVITE with an Unquoted Display Name Containg Non-Token Characters....................................................27 2.41 INVITE with Unknown (Higher) Protocol Version in Start Line27 2.42 INVITE with RFC2543 syntax...............................28 Security Considerations..........................................28 References.......................................................28 Acknowledgments..................................................29 Author's Addresses...............................................29 1. Overview These SIP test messages are based on the current version 2.0 of SIP in RFC 3261[2] with SDP usage described in RFC 3264[3]. Note that this document is informational, and is NOT NORMATIVE on any aspect of SIP syntax. 2. SIP Test Messages The files in here are test messages for SIP servers to exercise various functions. They have been used in SIPit interoperability events. All messages shown here are valid, unless otherwise noted. The correct behavior of servers and clients is also described. 2.1 INVITE Parser Torture Test Message This message is a correctly formatted SIP message. It contains: line folding all over escaped characters within quotes LWS between colons, semicolons, headers, and other fields both comma separated and separate listing of headers mix or short and long form for the same header unknown header field unusual header ordering unknown parameters of a known header Proxies should forward message and clients should respond as to a normal INVITE message. Message Details INVITE sip:vivekg@chair.dnrc.bell-labs.com SIP/2.0 TO : sip:vivekg@chair.dnrc.bell-labs.com ; tag = 1918181833n From : "J Rosenberg \\\"" <sip:jdrosen@lucent.com> ; tag = 98asjd8 Max-Forwards: 6 Call-ID: 0ha0isndaksdj@10.1.1.1 Johnston et al Expires - February 2002 [Page 3] SIP Torture Test Messages August 2002 cseq: 8 INVITE Via : SIP / 2.0 /UDP 135.180.130.133;branch=z9hG4bKkdjuw Subject : NewFangledHeader: newfangled value more newfangled value Content-Type: application/sdp v: SIP / 2.0 / TCP 1192.168.156.222 ; branch = 9ikj8 , SIP / 2.0 / UDP 192.168.255.111 ; hidden m:"Quoted string \"\"" <sip:jdrosen@bell-labs.com> ; newparam = newvalue ; secondparam = secondvalue ; q = 0.33, tel:4443322 v=0 o=mhandley 29739 7272939 IN IP4 126.5.4.3 s=- c=IN IP4 135.180.130.88 t=0 0 m=audio 492170 RTP/AVP 0 12 m=video 3227 RTP/AVP 31 a=rtpmap:31 LPC 2.2 INVITE with Proxy-Require and Require This message tests support for Proxy-Require and Require. It is a request that contains both headers, listing new features. Proxies and clients should respond with a 420 Bad Extension, and an Unsupported header listing these features. Message Details INVITE sip:user@company.com SIP/2.0 To: sip:j_user@company.com From: sip:caller@university.edu;tag=242etr Max-Forward: 6 Call-ID: 0ha0isndaksdj@10.1.1.1 Require: newfeature1, newfeature2 Proxy-Require: newfeature3, newfeature4 CSeq: 8 INVITE Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Johnston et al Expires - February 2002 [Page 4] SIP Torture Test Messages August 2002 2.3 INVITE with Unknown Schemes in URIs This message contains unknown schemes in the Request URI, To, From and Contact headers of a request. A server should probably return a not found error; but other behaviors are acceptable. Message Details INVITE name:John_Smith SIP/2.0 To: isbn:2983792873 From: <http://www.cs.columbia.edu>;tag=3234233 Call-ID: 0ha0isndaksdj@10.1.2.3 CSeq: 8 INVITE Max-Forward: 7 Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw Content-Type: application/sdp v=0 o=mhandley 29739 7272939 IN IP4 126.5.4.3 s=- c=IN IP4 135.180.130.88 t=0 0 m=audio 492170 RTP/AVP 0 12 m=video 3227 RTP/AVP 31 a=rtpmap:31 LPC 2.4 REGISTER with Y2038 Test This message is a registration request with an expiration year of 2040. This makes sure that a server doesn't crash on seeing a date past Y2038. The correct behavior is probably to limit the lifetime to some configured maximum. Message Details REGISTER sip:company.com SIP/2.0 To: sip:user@company.com From: sip:user@company.com;tag=3411345 Max-Forwards: 8 Contact: sip:user@host.company.com Call-ID: 0ha0isndaksdj@10.0.0.1 Johnston et al Expires - February 2002 [Page 5] SIP Torture Test Messages August 2002 CSeq: 8 REGISTER Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Expires: Sat, 01 Dec 2040 16:00:00 GMT 2.5 INVITE with inconsistent Accept and message body This is a UAS test. It is a request that includes an Accept header without SDP. The UAS should respond with an error. Message Details INVITE sip:user@company.com SIP/2.0 To: sip:j_user@company.com From: sip:caller@university.edu;tag=234 Max-Forwards: 5 Call-ID: 0ha0isndaksdj@10.0.0.1 Accept: text/newformat CSeq: 8 INVITE Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Content-Type: application/sdp v=0 c=IN IP4 135.180.130.88 m=audio 492170 RTP/AVP 0 12 m=video 3227 RTP/AVP 31 a=rtpmap:31 LPC 2.6 INVITE with non-SDP message body This is a test of a user agent server. It is a request that includes a body of a non-SDP type. The user agent server should respond with an error. Message Details INVITE sip:user@comapny.com SIP/2.0 To: sip:j.user@company.com From: sip:caller@university.edu;tag=8 Max-Forwards: 70 Call-ID: 0ha0isndaksdj@10.0.0.1 CSeq: 8 INVITE Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Content-Type: application/newformat Johnston et al Expires - February 2002 [Page 6] SIP Torture Test Messages August 2002 <audio> <pcmu port="443"/> </audio> 2.7 Unknown Method Message This request message contains a new unknown method, NEWMETHOD. A proxy should forward this using the same retransmission rules as BYE. A UAS should reject it with an error, and list the available methods in the response. Message Details NEWMETHOD sip:user@comapny.com SIP/2.0 To: sip:j.user@company.com From: sip:caller@university.edu;tag=34525 Max-Forwards: 6 Call-ID: 0ha0isndaksdj@10.0.0.1 CSeq: 8 NEWMETHOD Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Content-Type: application/sdp v=0 o=mhandley 29739 7272939 IN IP4 126.5.4.3 c=IN IP4 135.180.130.88 m=audio 492170 RTP/AVP 0 12 m=video 3227 RTP/AVP 31 a=rtpmap:31 LPC 2.8 Unknown Method with CSeq Error This message is nearly identical to the Unknown Method message. It is a request with a new unknown method, but with a CSeq method tag which does not match. A proxy should either respond with an error, or correct the method tag. The user agent should reject it with an error, and list the available methods in the response. Message Details NEWMETHOD sip:user@comapny.com SIP/2.0 To: sip:j.user@company.com From: sip:caller@university.edu;tag=23411413 Max-Forwards: 3 Call-ID: 0ha0isndaksdj@10.0.1.1 CSeq: 8 INVITE Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Content-Type: application/sdp v=0 o=mhandley 29739 7272939 IN IP4 126.5.4.3 s=- c=IN IP4 135.180.130.88 t=0 0 m=audio 492170 RTP/AVP 0 12 m=video 3227 RTP/AVP 31 a=rtpmap:31 LPC 2.9 REGISTER with Unknown Authorization Scheme This message is a REGISTER request with an unknown authorization scheme. The server should do something reasonable, such as rejecting the request. Message Details REGISTER sip:company.com SIP/2.0 To: sip:j.user@company.com From: sip:j.user@company.com;tag=87321hj23128 Max-Forwards: 8 Call-ID: 0ha0isndaksdj@10.0.1.1 CSeq: 8 REGISTER Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Authorization: Super-PGP ajsohdaosdh0asyhdaind08yasdknasd09asidhas0d8 2.10 Multiple SIP Request in a Single Message This message contains two requests, separated by a bunch of whitespace. Since the message exceeds the length indicated in the Content-Length header, the message should be rejected. (Multiple SIP requests per UDP packet are no longer allowed.) Message Details REGISTER sip:company.com SIP/2.0 To: sip:j.user@company.com From: sip:j.user@company.com;tag=43251j3j324 Max-Forwards: 8 Call-ID: 0ha0isndaksdj@10.0.2.2 Contact: sip:j.user@host.company.com CSeq: 8 REGISTER Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Content-Length: 0 INVITE sip:joe@company.com SIP/2.0 To: sip:joe@company.com From: sip:caller@university.edu;tag=141334 Max-Forwards: 8 Call-ID: 0ha0isnda977644900765@10.0.0.1 CSeq: 8 INVITE Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Content-Type: application/sdp v=0 o=mhandley 29739 7272939 IN IP4 126.5.4.3 s=- c=IN IP4 135.180.130.88 t=0 0 m=audio 492170 RTP/AVP 0 12 m =video 3227 RTP/AVP 31 a=rtpmap:31 LPC 2.11 INVITE missing Required Headers This message contains no Call-ID, From, or To header. The server should not crash, and ideally should respond with an error. Message Details INVITE sip:user@company.com SIP/2.0 CSeq: 0 INVITE Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Content-Type: application/sdp v=0 o=mhandley 29739 7272939 IN IP4 126.5.4.3 s=- c=IN IP4 135.180.130.88 t=0 0 m=audio 492170 RTP/AVP 0 12 m=video 3227 RTP/AVP 31 a=rtpmap:31 LPC 2.12 INVITE with Duplicate Required Headers The message contains a request with an extra Call-ID and To field. The server should not crash, and should ideally respond with an error. Message Details INVITE sip:user@company.com SIP/2.0 Via: SIP/2.0/UDP 135.180.130.133;branch=z9hG4bKkdjuw Max-Forwards: 70 CSeq: 0 INVITE Call-ID: 98asdh@10.1.1.1 Call-ID: 98asdh@10.1.1.2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -