Tests for the SIP Interoperability Events

Feature
Parser tests
name-addr forms in To, From, Contact (e.g., John Doe <doe@foo>)
line-folding
extra LWS around colons and semicolons
case-insensitive headers
address lookup (use of SRV, UDP/TCP ordering)
compact form of headers
Parser robustness
missing or wrong (UDP) content length
extra garbage after request
bogus request with random characters ignored
incomplete request ignored
Via header with spaces between /
invalid URI in request (no method, no host, ...)

Interoperability

Basic INVITE/200/ACK, UDP
Basic INVITE/200/ACK, TCP
Basic INVITE/302/ACK, UDP, single Contact
Basic INVITE/302/ACK, UDP, multiple Contact
Basic INVITE/302/ACK, TCP
400,500,600 responses understood by UAC
Correct message format with SDP
SDP: offer video and audio, with audio-only from other side
UDP operation: respond to address in Via
multiple requests in a UDP packet
Via with maddr
retransmission of requests and response, exponential back-off
BYE to terminate session
REGISTER, UDP unicast; current registration echoed; expiration time accepted and shown
REGISTER, UDP multicast
REGISTER, TCP
REGISTER expiration
OPTIONS

Basic Proxy

Via insertion
insert and parse branch parameter
locally regenerated request retransmissions
sends 100 response upstream
sends local ACKs for non-200 responses
doesn't retransmit 200 responses locally
forwards ACKs for 200 responses
forwards unknown header fields

Forking Proxy

forking proxy, with non-200/600 response
forking proxy, with 600 response
forking proxy, with 200 response
forking proxy with multiple 200 responses
time limit on forking (tests Expires)

Advanced Features

Max-Forwards
proxy with ACK sent direct
registration refreshed (tests Expires)
registration adds another Contact header
registration deletes all with Contact: *
loop detection
persistent TCP connections (multiple requests over one TCP connection)
request merging
re-INVITE's in user agents
multicast INVITE's
CANCEL understood by proxies/UAS
UAS doesn't cancel a call if INVITE response sent when CANCEL received
UTF-8 (maybe not)
multicast audio sessions
handles non-SDP payloads (doesn't need to parse it, just know it's not SDP)
Require and Proxy-Require headers
SDP in ACK
non-standard method (should send Allow in response)
html or text in non-200 responses
non-SIP URL's in Contact headers
Canonicalization of requests and responses by proxy server (i.e., conversion of requests to canonical format)

Security

Via hiding
PGP encryption
basic authentication for REGISTER
digest authentication for REGISTER
basic authentication for INVITE
digest authentication for INVITE

Header Handling

Header handling (generate/parse)
Accept
Accept-Encoding
Accept-Language
Allow
Authorization
Call-ID
Contact
Content-Encoding
Content-Length
Content-Type
CSeq
Date
Encryption
Expires
From
Hide
Max-Forwards
Organization
Proxy-Authenticate
Proxy-Authorization
Proxy-Require
Priority
Require
Retry-After
Retry-After
Response-Key
Record-Route
Route
Server
Subject
Timestamp
To
Unsupported
User-Agent
Via
Warning
WWW-Authenticate

RTP

set up PCMU call
GSM or G.723 call
multiple frames per packet
RTCP generation

Last updated by Henning Schulzrinne