Tests for the SIP Bake-Off -------------------------- Parser tests: name-addr forms in To, From, Contact line-folding extra LWS around colons and semicolons case-insensitive headers address lookup (use of SRV, UDP/TCP ordering) Parser robustness: missing or wrong (UDP) content length bogus request (random characters, partial request) Basic INVITE: UAC to UAS without proxy Correct message formatting, with SDP UDP operation: response to address in Via TCP operation multiple requests in a UDP packet Exponential backoff on timers BYE to terminate session redirect server sends 300 to UAC, single Contact field redirect server sends 300 to UAC, multiple Contact fields 400,500,600 responses understood by UAC OPTIONS understood by UAS 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 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) Max-Forwards proxy with ACK sent direct multicast REGISTER on start-up REGISTER sent and accepted, registrar echoes current registration in response 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 security Via hiding encryption authentication 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 Record-Route Route Server Subject Timestamp To Unsupported User-Agent Via Warning WWW-Authenticate