SIP - Session Initiation Protocol
What is SIP?
SIP stands for Session Initiation Protocol. It is a signaling protocol used to initiate, maintain, and terminate real-time communication sessions over IP networks. These sessions can include voice calls, video calls, messaging, and other multimedia services. SIP is a text-based protocol similar to HTTP and SMTP and is widely used in VoIP (Voice over IP) systems.
Why is SIP useful?
Session control – Handles call setup, management, and teardown between endpoints.
Flexibility – Supports voice, video, messaging, and presence information.
Scalability – Works across small peer-to-peer setups to large-scale enterprise systems.
Interoperability – Open standard supported by many vendors and platforms.
Mobility – Enables users to maintain the same identity across different devices and networks.
Integration – Works with other protocols like RTP (for media transport) and SDP (for session description).
How it works?
Session Initiation – A SIP client sends an INVITE request to start a session.
Session Negotiation – SIP uses SDP (Session Description Protocol) to negotiate media parameters.
Session Establishment – Media session is created using RTP (Real-time Transport Protocol).
Session Management – SIP handles transfers, hold, and modifications using messages like RE-INVITE.
Session Termination – A BYE request is sent by either party to end the session.
Where is SIP used?
VoIP services – Core protocol in services like Skype, Zoom, and enterprise telephony.
IP PBX systems – Used in business phone systems for both internal and external calls.
Mobile VoIP apps – Apps like Linphone, Zoiper, and Bria use SIP for internet-based calls.
Unified Communications – Integrates voice, video, messaging, and presence (e.g., Teams, Webex).
Call centers – Enables flexible call routing and communication management.
Emergency services (E911) – Used in next-gen emergency communication infrastructure.
Which OSI Layer does SIP operate at?
SIP operates at the Application Layer (Layer 7) of the OSI model.
It manages session control logic for initiating, maintaining, and terminating communications.
SIP works directly with user-facing applications like softphones and VoIP clients.
It defines structured signaling messages such as INVITE, ACK, BYE, and REGISTER.
SIP integrates with SDP and RTP, but its signaling responsibilities stay at Layer 7.
Topics in this section,
In this section, you are going to learn
Terminology
Version Info
SIP Version |
SIP Number |
Year |
Core Idea / Contribution |
---|---|---|---|
SIP 1.0 |
RFC 2543 |
1999 |
The original specification of SIP. Introduced SIP as a signaling protocol for initiating, modifying, and terminating multimedia sessions over IP networks. |
SIP 2.0 |
RFC 3261 |
2002 |
Major revision of SIP. Enhanced support for mobility, security, extensibility, and NAT traversal. Became the foundational standard for modern VoIP and multimedia communication systems. |
Setup
Setup
SIP INVITE Packet
S.No |
Protocol Packets |
Description |
Size(Bytes) |
---|---|---|---|
1 |
SIP INVITE Packet |
Used to initiate a session (e.g., voice or video call). |
~400700 Bytes |
Request Line |
Contains the INVITE method and SIP URI. |
~2040 |
|
Headers |
Includes To, From, Call-ID, CSeq, Via, Contact, etc. |
~200300 |
|
SDP Body |
Describes media types, codecs, and ports. |
~150300 |
SIP ACK Packet
S.No |
Protocol Packets |
Description |
Size(Bytes) |
---|---|---|---|
2 |
SIP ACK Packet |
Confirms receipt of a final response to an INVITE. |
~200300 Bytes |
Request Line |
Contains the ACK method and SIP URI. |
~2040 |
|
Headers |
Includes To, From, Call-ID, CSeq, Via, etc. |
~150250 |
SIP BYE Packet
S.No |
Protocol Packets |
Description |
Size(Bytes) |
---|---|---|---|
3 |
SIP BYE Packet |
Terminates an ongoing session. |
~200300 Bytes |
Request Line |
Contains the BYE method and SIP URI. |
~2040 |
|
Headers |
Includes To, From, Call-ID, CSeq, Via, etc. |
~150250 |
SIP REGISTER Packet
S.No |
Protocol Packets |
Description |
Size(Bytes) |
---|---|---|---|
4 |
SIP REGISTER Packet |
Registers a user agent with a SIP registrar server. |
~250350 Bytes |
Request Line |
Contains the REGISTER method and SIP URI. |
~2040 |
|
Headers |
Includes Contact, Expires, To, From, Call-ID, etc. |
~200300 |
SIP OPTIONS Packet
S.No |
Protocol Packets |
Description |
Size(Bytes) |
---|---|---|---|
5 |
SIP OPTIONS Packet |
Queries capabilities of a SIP endpoint. |
~200300 Bytes |
Request Line |
Contains the OPTIONS method and SIP URI. |
~2040 |
|
Headers |
Includes Allow, Accept, User-Agent, etc. |
~150250 |
SIP CANCEL Packet
S.No |
Protocol Packets |
Description |
Size(Bytes) |
---|---|---|---|
6 |
SIP CANCEL Packet |
Cancels a pending INVITE request. |
~200300 Bytes |
Request Line |
Contains the CANCEL method and SIP URI. |
~2040 |
|
Headers |
Includes To, From, Call-ID, CSeq, Via, etc. |
~150250 |
SIP Response Packet
S.No |
Protocol Packets |
Description |
Size(Bytes) |
---|---|---|---|
7 |
SIP Response Packet |
Sent by the server to respond to SIP requests (e.g., 180 Ringing, 200 OK). |
~400700 Bytes |
Status Line |
Contains the response code and reason phrase. |
~2040 |
|
Headers |
Includes Via, To, From, Call-ID, CSeq, Contact, etc. |
~200300 |
|
SDP Body (if present) |
Describes media session details. |
~150300 |
S.no |
Use Case |
Description |
---|---|---|
1 |
VoIP (Voice over IP) |
SIP is the core signaling protocol used to establish and manage internet-based voice calls. |
2 |
Video Conferencing |
Used to initiate and control video sessions in platforms like Zoom, Webex, and Microsoft Teams. |
3 |
IP Telephony (IP-PBX) |
Enables call routing and management in enterprise phone systems. |
4 |
Mobile VoIP Applications |
Powers apps like Linphone, Zoiper, and Bria for calling over mobile data or Wi-Fi. |
5 |
Unified Communications |
Integrates voice, video, messaging, and presence into a single communication platform. |
6 |
Call Centers |
Used for managing inbound and outbound calls, call transfers, and agent routing. |
7 |
Emergency Services (e.g., E911) |
Supports next-generation emergency communication systems over IP. |
8 |
Presence and Messaging |
Works with protocols like SIMPLE to provide user availability and instant messaging. |
9 |
SIP Trunking |
Connects enterprise phone systems to the PSTN via the internet, reducing telecom costs. |
10 |
Home Automation & IoT |
Used in smart intercoms, doorbells, and other devices for real-time communication. |
S.no |
Feature |
Description |
---|---|---|
1 |
Text-Based Protocol |
SIP messages are human-readable and similar in format to HTTP. |
2 |
Session Control |
Manages initiation, modification, and termination of multimedia sessions. |
3 |
Transport Independent |
Can run over UDP, TCP, or SCTP, offering flexibility in network environments. |
4 |
Addressing via URI |
Uses SIP URIs (e.g., sip:alice@example.com) to identify users. |
5 |
Support for Mobility |
Allows users to maintain the same identity across multiple devices and networks. |
6 |
Extensible Architecture |
Easily extended with new methods and headers (e.g., INFO, PRACK). |
7 |
Integration with Other Protocols |
Works with SDP for media negotiation and RTP for media transport. |
8 |
Proxy and Redirect Support |
Supports call routing through intermediate servers for scalability and control. |
9 |
Presence and Messaging |
Can be extended to support instant messaging and user presence (via SIMPLE). |
10 |
Security Support |
Can use TLS for signaling encryption and S/MIME for message confidentiality. |
Text-Based Protocol - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
SIP INVITE Message Format |
Validate structure of INVITE message |
Message is correctly formatted |
2 |
SIP ACK Message Format |
Validate structure of ACK message |
Message is correctly formatted |
3 |
SIP BYE Message Format |
Validate structure of BYE message |
Message is correctly formatted |
4 |
SIP REGISTER Message Format |
Validate structure of REGISTER message |
Message is correctly formatted |
5 |
SIP OPTIONS Message Format |
Validate structure of OPTIONS message |
Message is correctly formatted |
6 |
SIP CANCEL Message Format |
Validate structure of CANCEL message |
Message is correctly formatted |
7 |
SIP MESSAGE Method Format |
Validate structure of MESSAGE method |
Message is correctly formatted |
8 |
SIP INFO Method Format |
Validate structure of INFO method |
Message is correctly formatted |
9 |
SIP SUBSCRIBE Method Format |
Validate structure of SUBSCRIBE method |
Message is correctly formatted |
10 |
SIP NOTIFY Method Format |
Validate structure of NOTIFY method |
Message is correctly formatted |
11 |
SIP REFER Method Format |
Validate structure of REFER method |
Message is correctly formatted |
12 |
SIP PRACK Method Format |
Validate structure of PRACK method |
Message is correctly formatted |
13 |
SIP UPDATE Method Format |
Validate structure of UPDATE method |
Message is correctly formatted |
14 |
SIP Response 200 OK Format |
Validate structure of 200 OK response |
Response is correctly formatted |
15 |
SIP Response 180 Ringing Format |
Validate structure of 180 Ringing |
Response is correctly formatted |
16 |
SIP Response 100 Trying Format |
Validate structure of 100 Trying |
Response is correctly formatted |
17 |
SIP Response 486 Busy Here Format |
Validate structure of 486 Busy Here |
Response is correctly formatted |
18 |
SIP Response 404 Not Found Format |
Validate structure of 404 Not Found |
Response is correctly formatted |
19 |
SIP Response 603 Decline Format |
Validate structure of 603 Decline |
Response is correctly formatted |
20 |
SIP Header Via |
Validate Via header format |
Header is correct |
21 |
SIP Header From |
Validate From header format |
Header is correct |
22 |
SIP Header To |
Validate To header format |
Header is correct |
23 |
SIP Header Call-ID |
Validate Call-ID header format |
Header is correct |
24 |
SIP Header CSeq |
Validate CSeq header format |
Header is correct |
25 |
SIP Header Contact |
Validate Contact header format |
Header is correct |
26 |
SIP Header Max-Forwards |
Validate Max-Forwards header format |
Header is correct |
27 |
SIP Header Content-Length |
Validate Content-Length header format |
Header is correct |
28 |
SIP Header Content-Type |
Validate Content-Type header format |
Header is correct |
29 |
SIP Header User-Agent |
Validate User-Agent header format |
Header is correct |
30 |
SIP Header Allow |
Validate Allow header format |
Header is correct |
31 |
SIP Header Supported |
Validate Supported header format |
Header is correct |
32 |
SIP Header Authorization |
Validate Authorization header format |
Header is correct |
33 |
SIP Header Record-Route |
Validate Record-Route header format |
Header is correct |
34 |
SIP Header Route |
Validate Route header format |
Header is correct |
35 |
SIP Header Retry-After |
Validate Retry-After header format |
Header is correct |
36 |
SIP Header Warning |
Validate Warning header format |
Header is correct |
37 |
SIP Header Timestamp |
Validate Timestamp header format |
Header is correct |
38 |
SIP Header Expires |
Validate Expires header format |
Header is correct |
39 |
SIP Header Event |
Validate Event header format |
Header is correct |
40 |
SIP Header Subscription-State |
Validate Subscription-State header format |
Header is correct |
41 |
SIP Message Parsing |
Parse SIP message text |
Parsed successfully |
42 |
SIP Message Validation |
Validate message syntax |
Message is valid |
43 |
SIP Message Logging |
Log SIP message text |
Message is readable |
44 |
SIP Message Debugging |
Debug SIP message manually |
Message is interpretable |
45 |
SIP Message with SDP |
Include SDP in message body |
SDP is correctly embedded |
46 |
SIP Message with XML |
Include XML in message body |
XML is correctly embedded |
47 |
SIP Message with JSON |
Include JSON in message body |
JSON is correctly embedded |
48 |
SIP Message with UTF-8 Encoding |
Use UTF-8 characters |
Message is readable |
49 |
SIP Message with Line Folding |
Use folded headers |
Message is correctly parsed |
50 |
SIP Message with Comments |
Include comments in headers |
Comments are ignored correctly |
Session Control - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
SIP INVITE Request |
Initiate a new session |
200 OK response received |
2 |
SIP ACK Handling |
Acknowledge session establishment |
ACK is received |
3 |
SIP BYE Request |
Terminate an active session |
Session ends successfully |
4 |
SIP CANCEL Request |
Cancel a pending INVITE |
Session is aborted |
5 |
SIP Re-INVITE |
Modify an ongoing session |
Session parameters are updated |
6 |
SIP UPDATE Method |
Update session without SDP renegotiation |
Session is updated |
7 |
SIP OPTIONS Request |
Query capabilities of peer |
200 OK with supported methods |
8 |
SIP REGISTER Request |
Register user agent with SIP server |
Registration is successful |
9 |
SIP 100 Trying Response |
Provisional response to INVITE |
Trying message is received |
10 |
SIP 180 Ringing Response |
Indicate ringing at destination |
Ringing message is received |
11 |
SIP 183 Session Progress |
Early media setup |
Media path is established |
12 |
SIP 200 OK Response |
Final response to INVITE |
Session is established |
13 |
SIP 486 Busy Here |
Callee is busy |
Call is rejected |
14 |
SIP 487 Request Terminated |
INVITE canceled before completion |
Session is terminated |
15 |
SIP 488 Not Acceptable Here |
Unsupported media format |
Session is rejected |
16 |
SIP SDP Negotiation |
Exchange session parameters |
Media codecs are agreed |
17 |
SIP Hold/Resume |
Put call on hold and resume |
Media is paused and resumed |
18 |
SIP Call Transfer (REFER) |
Transfer call to another party |
Call is redirected |
19 |
SIP Call Forwarding |
Forward call based on policy |
Call is routed to new target |
20 |
SIP Forking |
INVITE sent to multiple endpoints |
One endpoint answers |
21 |
SIP Session Timer |
Refresh session periodically |
Session is kept alive |
22 |
SIP Authentication (401) |
Challenge with 401 Unauthorized |
Client retries with credentials |
23 |
SIP Digest Authentication |
Use MD5 digest for auth |
Auth is successful |
24 |
SIP TLS Transport |
Use TLS for secure signaling |
Session is encrypted |
25 |
SIP UDP Transport |
Use UDP for signaling |
Messages are delivered |
26 |
SIP TCP Transport |
Use TCP for signaling |
Messages are delivered |
27 |
SIP NAT Traversal |
Use STUN/TURN for NAT |
Session is established |
28 |
SIP Session with ICE |
Use ICE for media path |
Best path is selected |
29 |
SIP Session with SRTP |
Use SRTP for media encryption |
Media is secure |
30 |
SIP Session with QoS |
Apply QoS to SIP media |
Priority is respected |
31 |
SIP Session with Video |
Establish video call |
Video stream is active |
32 |
SIP Session with Audio |
Establish audio call |
Audio stream is active |
33 |
SIP Session with Messaging |
Use SIP MESSAGE method |
Message is delivered |
34 |
SIP Session with Presence |
Subscribe to presence info |
Presence is updated |
35 |
SIP Session with Conference |
Join multi-party session |
Conference is established |
36 |
SIP Session with Early Media |
Play media before 200 OK |
Media is heard |
37 |
SIP Session with DTMF |
Send DTMF tones |
Tones are received |
38 |
SIP Session with Timer Expiry |
Let session timer expire |
Session is terminated |
39 |
SIP Session with Packet Loss |
Simulate signaling loss |
Session is recovered |
40 |
SIP Session with Re-Registration |
Re-register after expiry |
Registration is renewed |
41 |
SIP Session with Network Failover |
Switch network mid-call |
Session continues |
42 |
SIP Session with Codec Change |
Change codec mid-call |
Media is renegotiated |
43 |
SIP Session with Call Waiting |
Receive second call |
Notification is shown |
44 |
SIP Session with Call Hold |
Hold call using SDP a=sendonly |
Media is paused |
45 |
SIP Session with Call Resume |
Resume call using a=sendrecv |
Media resumes |
46 |
SIP Session with Call Rejection |
Reject call with 603 Decline |
Call is rejected |
47 |
SIP Session with Call Redirection |
Redirect call with 302 Moved Temporarily |
Call is redirected |
48 |
SIP Session with Logging |
Log SIP messages |
Logs are complete |
49 |
SIP Session with SLA Enforcement |
Enforce session SLA |
SLA is met |
50 |
SIP Session with Policy Control |
Apply call admission control |
Policy is enforced |
Transport Independent - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
SIP over UDP INVITE |
Send INVITE over UDP |
Message is delivered |
2 |
SIP over TCP INVITE |
Send INVITE over TCP |
Message is delivered |
3 |
SIP over SCTP INVITE |
Send INVITE over SCTP |
Message is delivered |
4 |
SIP over UDP REGISTER |
Send REGISTER over UDP |
Registration succeeds |
5 |
SIP over TCP REGISTER |
Send REGISTER over TCP |
Registration succeeds |
6 |
SIP over SCTP REGISTER |
Send REGISTER over SCTP |
Registration succeeds |
7 |
SIP over UDP BYE |
Send BYE over UDP |
Call is terminated |
8 |
SIP over TCP BYE |
Send BYE over TCP |
Call is terminated |
9 |
SIP over SCTP BYE |
Send BYE over SCTP |
Call is terminated |
10 |
SIP over UDP OPTIONS |
Send OPTIONS over UDP |
Response is received |
11 |
SIP over TCP OPTIONS |
Send OPTIONS over TCP |
Response is received |
12 |
SIP over SCTP OPTIONS |
Send OPTIONS over SCTP |
Response is received |
13 |
SIP over UDP Fragmentation |
Send large message |
Message is fragmented |
14 |
SIP over TCP Fragmentation |
Send large message |
Message is delivered intact |
15 |
SIP over SCTP Fragmentation |
Send large message |
Message is delivered intact |
16 |
SIP over UDP Retransmission |
Simulate packet loss |
Retransmission occurs |
17 |
SIP over TCP Retransmission |
Simulate packet loss |
TCP handles retransmission |
18 |
SIP over SCTP Retransmission |
Simulate packet loss |
SCTP handles retransmission |
19 |
SIP over UDP NAT Traversal |
Use STUN/TURN |
Traversal succeeds |
20 |
SIP over TCP NAT Traversal |
Use STUN/TURN |
Traversal succeeds |
21 |
SIP over SCTP NAT Traversal |
Use STUN/TURN |
Traversal succeeds |
22 |
SIP over UDP TLS Not Supported |
Attempt TLS |
Connection fails |
23 |
SIP over TCP TLS Supported |
Use TLS |
Secure connection established |
24 |
SIP over SCTP TLS Supported |
Use TLS |
Secure connection established |
25 |
SIP Transport Switching UDP to TCP |
Switch transport mid-session |
Session continues |
26 |
SIP Transport Switching TCP to SCTP |
Switch transport mid-session |
Session continues |
27 |
SIP Transport Switching SCTP to UDP |
Switch transport mid-session |
Session continues |
28 |
SIP Transport Preference UDP First |
Prefer UDP |
UDP is selected |
29 |
SIP Transport Preference TCP First |
Prefer TCP |
TCP is selected |
30 |
SIP Transport Preference SCTP First |
Prefer SCTP |
SCTP is selected |
31 |
SIP Transport Failover UDP Fails |
Fallback to TCP |
Session continues |
32 |
SIP Transport Failover TCP Fails |
Fallback to SCTP |
Session continues |
33 |
SIP Transport Failover SCTP Fails |
Fallback to UDP |
Session continues |
34 |
SIP Transport Logging UDP |
Log UDP messages |
Logs are accurate |
35 |
SIP Transport Logging TCP |
Log TCP messages |
Logs are accurate |
36 |
SIP Transport Logging SCTP |
Log SCTP messages |
Logs are accurate |
37 |
SIP Transport with IPv4 |
Use IPv4 stack |
Transport works |
38 |
SIP Transport with IPv6 |
Use IPv6 stack |
Transport works |
39 |
SIP Transport with Dual Stack |
Use IPv4 and IPv6 |
Both are supported |
40 |
SIP Transport with Firewall |
Use transport behind firewall |
Connection is allowed |
41 |
SIP Transport with QoS |
Apply QoS to transport |
Priority is respected |
42 |
SIP Transport with TLS |
Secure transport layer |
Encryption is active |
43 |
SIP Transport with DTLS |
Use DTLS over UDP |
Secure connection established |
44 |
SIP Transport with Load Balancer |
Route via LB |
Transport is preserved |
45 |
SIP Transport with Proxy |
Use SIP proxy |
Transport is preserved |
46 |
SIP Transport with NAT |
Use NAT traversal |
Transport is preserved |
47 |
SIP Transport with Packet Loss |
Simulate loss |
Transport handles recovery |
48 |
SIP Transport with High Latency |
Simulate delay |
Session is stable |
49 |
SIP Transport with Congestion |
Simulate congestion |
Transport adapts |
50 |
SIP Transport with SLA Enforcement |
Enforce transport SLA |
SLA is met |
Addressing via URI - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Valid SIP URI Format |
URI is accepted |
|
2 |
Invalid SIP URI Format |
Use sip:alice@ |
URI is rejected |
3 |
URI with Display Name |
Use “Alice” <sip:alice@example.com> |
URI is parsed correctly |
4 |
URI with Port Number |
URI is accepted |
|
5 |
URI with Transport Parameter |
URI is accepted |
|
6 |
URI with User Parameter |
URI is accepted |
|
7 |
URI with Secure Scheme |
Secure session is initiated |
|
8 |
URI with IPv4 Address |
URI is accepted |
|
9 |
URI with IPv6 Address |
URI is accepted |
|
10 |
URI with Domain Name |
URI is resolved |
|
11 |
URI with Username Only |
Use sip:alice |
Proxy resolves domain |
12 |
URI with Tel URI |
Use tel:+1234567890 |
URI is accepted if supported |
13 |
URI with Parameters |
URI is parsed correctly |
|
14 |
URI with Headers |
Headers are parsed |
|
15 |
URI Case Sensitivity |
URI is matched correctly |
|
16 |
URI with Special Characters |
URI is accepted |
|
17 |
URI with Percent Encoding |
URI is decoded |
|
18 |
URI with Authentication |
Use sip:alice@example.com with credentials |
Auth succeeds |
19 |
URI Resolution via DNS |
Resolve sip:alice@domain.com |
SRV/NAPTR lookup succeeds |
20 |
URI with ENUM Lookup |
Use ENUM to resolve phone number |
SIP URI is returned |
21 |
URI with Proxy Routing |
Route via outbound proxy |
URI is forwarded |
22 |
URI with Registrar |
Register sip:alice@example.com |
Registration is successful |
23 |
URI with Presence Server |
Subscribe to sip:alice@example.com |
Presence is updated |
24 |
URI with Message Method |
Send SIP MESSAGE to URI |
Message is delivered |
25 |
URI with INVITE Method |
Send INVITE to URI |
Call is initiated |
26 |
URI with REFER Method |
Refer call to URI |
Call is transferred |
27 |
URI with SUBSCRIBE Method |
Subscribe to URI |
Subscription is active |
28 |
URI with NOTIFY Method |
Notify URI |
Notification is received |
29 |
URI with OPTIONS Method |
Query capabilities of URI |
200 OK is received |
30 |
URI with INFO Method |
Send INFO to URI |
INFO is processed |
31 |
URI with Replaces Header |
Replace existing call |
Call is replaced |
32 |
URI with Referred-By Header |
Include referral info |
Header is parsed |
33 |
URI with Privacy Header |
Use Privacy: id |
Identity is hidden |
34 |
URI with P-Asserted-Identity |
Assert identity |
Identity is trusted |
35 |
URI with Contact Header |
Use URI in Contact |
Contact is registered |
36 |
URI with To Header |
Use URI in To field |
Call is routed correctly |
37 |
URI with From Header |
Use URI in From field |
Caller is identified |
38 |
URI with Record-Route |
Use URI in Record-Route |
Route is preserved |
39 |
URI with Route Header |
Use URI in Route |
Request is routed |
40 |
URI with Path Header |
Use URI in Path |
Path is recorded |
41 |
URI with GRUU |
Globally Routable URI is used |
|
42 |
URI with Temporary Contact |
Use URI with expires=0 |
Contact is removed |
43 |
URI with Multiple Contacts |
Register multiple URIs |
All are accepted |
44 |
URI with Priority |
Use URI with q=0.5 |
Priority is respected |
45 |
URI with Wildcard |
Request is rejected |
|
46 |
URI with Loop Detection |
Detect routing loop |
Loop is broken |
47 |
URI with Malformed Header |
Use URI with bad header |
Request is rejected |
48 |
URI with Long Path |
Use URI with many parameters |
URI is parsed correctly |
49 |
URI Logging |
Log SIP URI usage |
Logs are accurate |
50 |
URI with SLA Enforcement |
Enforce SLA per URI |
SLA is met |
Support for Mobility - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
SIP Identity Registration Device A |
Register user on Device A |
Registration succeeds |
2 |
SIP Identity Registration Device B |
Register same user on Device B |
Registration succeeds |
3 |
SIP Identity Registration Network A |
Register user on Network A |
Registration succeeds |
4 |
SIP Identity Registration Network B |
Register user on Network B |
Registration succeeds |
5 |
SIP INVITE to Multiple Devices |
Send call to user identity |
All devices ring |
6 |
SIP MESSAGE to Multiple Devices |
Send message to user identity |
Message is delivered to all |
7 |
SIP Call Answer on One Device |
Answer call on Device A |
Other devices stop ringing |
8 |
SIP Call Transfer Between Devices |
Transfer call from Device A to B |
Call is handed over |
9 |
SIP Session Continuity Network Switch |
Switch from Wi-Fi to LTE |
Session is maintained |
10 |
SIP Session Continuity Roaming |
Move to roaming network |
Session is maintained |
11 |
SIP Identity Persistence Reboot |
Reboot device |
Identity is retained |
12 |
SIP Identity Persistence App Restart |
Restart SIP app |
Identity is retained |
13 |
SIP Identity with NAT Traversal |
Use STUN/TURN |
Identity is preserved |
14 |
SIP Identity with TLS |
Use secure transport |
Identity is protected |
15 |
SIP Identity with IPv6 |
Use IPv6 stack |
Identity is preserved |
16 |
SIP Identity with IPv4 |
Use IPv4 stack |
Identity is preserved |
17 |
SIP Identity with Dual Stack |
Use IPv4 and IPv6 |
Identity is consistent |
18 |
SIP Identity with Mobility Event Logging |
Log mobility events |
Logs are accurate |
19 |
SIP Identity with Location Update |
Update location |
Identity remains unchanged |
20 |
SIP Identity with Device Handover |
Switch devices mid-call |
Identity is preserved |
21 |
SIP Identity with Network Handover |
Switch networks mid-call |
Identity is preserved |
22 |
SIP Identity with QoS |
Maintain QoS across devices |
QoS is preserved |
23 |
SIP Identity with Emergency Call |
Make emergency call |
Identity is prioritized |
24 |
SIP Identity with Call Forwarding |
Forward call to another device |
Identity is preserved |
25 |
SIP Identity with Call Waiting |
Receive second call |
Identity handles both sessions |
26 |
SIP Identity with Voicemail |
Missed call goes to voicemail |
Identity is linked to mailbox |
27 |
SIP Identity with Presence Info |
Share presence across devices |
Info is synchronized |
28 |
SIP Identity with Multiple Registrars |
Register with multiple servers |
Identity is consistent |
29 |
SIP Identity with Failover |
Registrar fails |
Identity is preserved via backup |
30 |
SIP Identity with Load Balancer |
Route via LB |
Identity is preserved |
31 |
SIP Identity with Proxy Server |
Use SIP proxy |
Identity is preserved |
32 |
SIP Identity with Firewall |
Use behind firewall |
Identity is preserved |
33 |
SIP Identity with VPN |
Use VPN tunnel |
Identity is preserved |
34 |
SIP Identity with App Update |
Update SIP app |
Identity is retained |
35 |
SIP Identity with Device Update |
Update OS |
Identity is retained |
36 |
SIP Identity with SIM Change |
Change SIM |
Identity is preserved via credentials |
37 |
SIP Identity with Network Congestion |
Simulate congestion |
Identity is unaffected |
38 |
SIP Identity with Packet Loss |
Simulate loss |
Identity is preserved |
39 |
SIP Identity with High Latency |
Simulate delay |
Identity is preserved |
40 |
SIP Identity with Transport Change |
Switch from UDP to TCP |
Identity is preserved |
41 |
SIP Identity with SCTP |
Use SCTP transport |
Identity is preserved |
42 |
SIP Identity with App Clone |
Clone app on second device |
Identity is preserved |
43 |
SIP Identity with Device Sync |
Sync SIP settings |
Identity is consistent |
44 |
SIP Identity with Cloud Backup |
Restore from cloud |
Identity is restored |
45 |
SIP Identity with Multi-Device Ringing |
Ring all devices |
Identity is unified |
46 |
SIP Identity with Multi-Device Messaging |
Send message |
Delivered to all devices |
47 |
SIP Identity with Session Transfer |
Transfer session |
Identity is preserved |
48 |
SIP Identity with SLA Enforcement |
Enforce identity SLA |
SLA is met |
49 |
SIP Identity with Policy Control |
Apply identity policy |
Policy is enforced |
50 |
SIP Identity with Security Audit |
Audit identity usage |
Identity is secure and consistent |
Extensible Architecture - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Support for INFO Method |
Send SIP INFO request |
INFO is processed |
2 |
Support for PRACK Method |
Send PRACK for provisional response |
PRACK is acknowledged |
3 |
Support for MESSAGE Method |
Send SIP MESSAGE |
Message is delivered |
4 |
Support for REFER Method |
Send REFER to transfer call |
Call is redirected |
5 |
Support for SUBSCRIBE Method |
Subscribe to event |
Subscription is accepted |
6 |
Support for NOTIFY Method |
Send NOTIFY for subscription |
Notification is received |
7 |
Support for PUBLISH Method |
Publish presence info |
Info is accepted |
8 |
Support for UPDATE Method |
Modify session mid-call |
Session is updated |
9 |
Support for OPTIONS Method |
Query capabilities |
200 OK with Allow header |
10 |
Custom SIP Method Handling |
Handle non-standard method |
Method is parsed |
11 |
Add Custom Header |
Add X-Custom-Header |
Header is transmitted |
12 |
Parse Unknown Header |
Receive unknown header |
Header is ignored or logged |
13 |
Extend SDP Attributes |
Add custom SDP attribute |
Attribute is parsed |
14 |
Extend MIME Types |
Use new MIME type in body |
Body is accepted |
15 |
Extend Event Package |
Use custom event in SUBSCRIBE |
Event is handled |
16 |
Extend URI Parameters |
Add new URI parameter |
URI is parsed correctly |
17 |
Extend Contact Header |
Add custom parameter |
Parameter is retained |
18 |
Extend Via Header |
Add custom transport info |
Header is parsed |
19 |
Extend Reason Header |
Add new cause code |
Reason is logged |
20 |
Extend Warning Header |
Add custom warning |
Warning is displayed |
21 |
Extend Call-Info Header |
Add image or info URL |
Info is displayed |
22 |
Extend Alert-Info Header |
Add ringtone URI |
Ringtone is played |
23 |
Extend P-Header |
Add new P-Header (e.g., P-Access-Network-Info) |
Header is parsed |
24 |
Extend Authentication Scheme |
Add new auth method |
Auth is processed |
25 |
Extend Transport Protocol |
Use new transport (e.g., QUIC) |
Transport is supported |
26 |
Extend Dialog State |
Add custom dialog state info |
State is tracked |
27 |
Extend Session Timer |
Add new timer parameter |
Timer is respected |
28 |
Extend SDP Codec List |
Add new codec |
Codec is negotiated |
29 |
Extend SDP Bandwidth Info |
Add bandwidth modifier |
Modifier is parsed |
30 |
Extend SDP Media Line |
Add new media type |
Media is negotiated |
31 |
Extend SDP Direction |
Add a=inactive or custom |
Direction is respected |
32 |
Extend SDP Grouping |
Use a=group:BUNDLE |
Group is parsed |
33 |
Extend SDP Fingerprint |
Add DTLS fingerprint |
Fingerprint is validated |
34 |
Extend SIP Timer |
Add custom retransmission timer |
Timer is applied |
35 |
Extend SIP Dialog ID |
Add custom tag |
Dialog is tracked |
36 |
Extend SIP Transaction ID |
Add custom branch ID |
Transaction is unique |
37 |
Extend SIP Response Code |
Use new 6xx code |
Response is handled |
38 |
Extend SIP Request URI |
Add new URI scheme |
URI is parsed |
39 |
Extend SIP Response Reason Phrase |
Use custom reason |
Reason is displayed |
40 |
Extend SIP Logging |
Log new headers and methods |
Logs are complete |
41 |
Extend SIP Proxy Behavior |
Proxy handles new method |
Method is forwarded |
42 |
Extend SIP Registrar |
Registrar accepts new headers |
Registration is successful |
43 |
Extend SIP Presence Server |
Server handles new event |
Presence is updated |
44 |
Extend SIP Gateway |
Gateway translates new method |
Method is mapped |
45 |
Extend SIP B2BUA |
B2BUA supports new headers |
Session is bridged |
46 |
Extend SIP Load Balancer |
Balancer routes new method |
Load is distributed |
47 |
Extend SIP Firewall Rules |
Allow new method |
Traffic is permitted |
48 |
Extend SIP NAT Traversal |
Support new NAT method |
Traversal is successful |
49 |
Extend SIP SLA Enforcement |
Apply SLA to new method |
SLA is enforced |
50 |
Extend SIP Policy Control |
Apply policy to new header |
Policy is enforced |
Integration with Other Protocols - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
SDP Offer/Answer Exchange |
Send INVITE with SDP offer, receive 200 OK with SDP answer |
Media negotiated successfully |
2 |
RTP Media Flow |
Establish RTP stream after SDP negotiation |
RTP packets flow correctly |
3 |
SDP Codec Negotiation |
Offer multiple codecs in SDP |
Common codec selected |
4 |
SDP with ICE Candidates |
Include ICE candidates in SDP |
ICE negotiation completes |
5 |
RTP with SRTP |
Use SDP to negotiate SRTP |
Encrypted RTP established |
6 |
SDP with RTCP Mux |
Use a=rtcp-mux in SDP |
RTCP multiplexed with RTP |
7 |
SDP with BUNDLE |
Use a=group:BUNDLE in SDP |
Media bundled on single transport |
8 |
SDP with DTLS Fingerprint |
Include DTLS fingerprint in SDP |
DTLS handshake succeeds |
9 |
RTP Port Range Validation |
Validate RTP port range in SDP |
Ports are within allowed range |
10 |
SDP with Media Direction |
Use a=sendrecv, a=inactive, etc. |
Media direction respected |
11 |
SDP with Multiple Media Lines |
Offer audio and video |
Both streams negotiated |
12 |
RTP Packet Loss Handling |
Simulate RTP loss |
Media quality degrades gracefully |
13 |
SDP with Bandwidth Modifier |
Use b=AS:128 in SDP |
Bandwidth limit applied |
14 |
SDP with Custom Attributes |
Add custom a= lines |
Attributes parsed or ignored |
15 |
RTP with RTCP Feedback |
Enable RTCP feedback in SDP |
Feedback packets received |
16 |
SDP with Redundant Encoding |
Use a=rtpmap for RED |
Redundancy negotiated |
17 |
SDP with FEC |
Use Forward Error Correction |
FEC packets transmitted |
18 |
RTP with DTMF |
Send DTMF via RTP (RFC 2833) |
DTMF tones recognized |
19 |
SDP with Media Encryption |
Use a=crypto line |
Media encrypted |
20 |
RTP with Jitter Buffer |
Simulate jitter |
Buffer compensates delay |
21 |
SDP with Session Name |
Include s= line |
Session name displayed |
22 |
SDP with Connection Info |
Use c=IN IP4 x.x.x.x |
IP address parsed |
23 |
SDP with Timing Info |
Use t= line |
Session timing respected |
24 |
RTP with NAT Traversal |
Use STUN/TURN |
Media flows through NAT |
25 |
SDP with Invalid Codec |
Offer unsupported codec |
Offer rejected or ignored |
26 |
RTP with Clock Skew |
Simulate clock drift |
RTP timestamps adjusted |
27 |
SDP with Media-Level Attributes |
Use a=fmtp at media level |
Attributes applied per stream |
28 |
RTP with Packet Reordering |
Reorder RTP packets |
Media reconstructed correctly |
29 |
SDP with Multiple Addresses |
Use multiple c= lines |
Correct address selected |
30 |
RTP with Silence Suppression |
Enable VAD |
Silence not transmitted |
31 |
SDP with Mid-Call Re-INVITE |
Send re-INVITE with new SDP |
Session updated |
32 |
RTP with SSRC Collision |
Simulate SSRC conflict |
New SSRC assigned |
33 |
SDP with Hold/Resume |
Use a=inactive/sendonly |
Media paused/resumed |
34 |
RTP with Early Media |
Send media before 200 OK |
Early media played |
35 |
SDP with Invalid Syntax |
Malformed SDP |
Session rejected |
36 |
RTP with Secure Key Exchange |
Use SDES or DTLS-SRTP |
Keys exchanged securely |
37 |
SDP with Media Rejection |
Use port 0 to reject stream |
Media not established |
38 |
RTP with One-Way Audio |
Block one RTP direction |
One-way audio detected |
39 |
SDP with Session Versioning |
Change o= line version |
Update detected |
40 |
RTP with Codec Mismatch |
Use different codecs |
Media fails or fallback used |
41 |
SDP with ICE Restart |
Change ICE ufrag/pwd |
ICE restart triggered |
42 |
RTP with Congestion |
Simulate network congestion |
RTP adapts or degrades |
43 |
SDP with Multiple Codecs per Media |
List multiple codecs |
Best match selected |
44 |
RTP with Media Loopback |
Loop RTP back to sender |
Media loop verified |
45 |
SDP with Media Attributes Change |
Modify a= lines mid-call |
Attributes updated |
46 |
RTP with Timestamp Wraparound |
Simulate wraparound |
Media continuity maintained |
47 |
SDP with Session Description Protocol Version |
Use v=0 |
Version parsed correctly |
48 |
RTP with Dynamic Payload Types |
Use dynamic PTs |
Payloads mapped correctly |
49 |
SDP with Media Grouping |
Use a=group:LS |
Grouping respected |
50 |
RTP with Media Clipping |
Start/stop RTP abruptly |
Clipping detected |
Proxy and Redirect Support - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Basic Proxy Routing |
Send INVITE via proxy |
Proxy forwards INVITE |
2 |
Stateless Proxy Handling |
Use stateless proxy |
Proxy forwards without storing state |
3 |
Stateful Proxy Handling |
Use stateful proxy |
Proxy maintains transaction state |
4 |
Redirect Server Response |
INVITE gets 302 Moved Temporarily |
Client redirects to new URI |
5 |
Proxy Authentication |
Proxy challenges with 407 |
Client responds with credentials |
6 |
Route Header Parsing |
Include Route headers |
Proxy routes as per headers |
7 |
Record-Route Header |
Proxy inserts Record-Route |
Dialog uses route set |
8 |
Loose Routing Support |
Use lr parameter in Route |
Proxy uses loose routing |
9 |
Strict Routing Support |
Omit lr parameter |
Proxy rewrites Request-URI |
10 |
Proxy Forking |
Proxy forks INVITE to multiple UAs |
One answers, others get CANCEL |
11 |
Parallel Forking |
Proxy sends INVITE in parallel |
Fastest response accepted |
12 |
Sequential Forking |
Proxy tries UAs one by one |
First available UA answers |
13 |
Proxy Timer Handling |
Proxy uses Timer C |
INVITE times out if no response |
14 |
Proxy CANCEL Handling |
Proxy receives CANCEL |
CANCEL forwarded to branches |
15 |
Proxy ACK Handling |
Proxy forwards ACK |
ACK reaches correct UA |
16 |
Proxy Re-INVITE Handling |
Mid-dialog INVITE via proxy |
Proxy routes correctly |
17 |
Proxy BYE Handling |
BYE sent via proxy |
Call terminated |
18 |
Proxy OPTIONS Handling |
OPTIONS sent via proxy |
Capabilities returned |
19 |
Proxy PRACK Handling |
PRACK routed via proxy |
Reliable provisional response acknowledged |
20 |
Proxy with DNS SRV |
Use DNS SRV for proxy lookup |
Correct proxy selected |
21 |
Proxy with TLS |
Use TLS transport |
Secure connection established |
22 |
Proxy with TCP |
Use TCP transport |
Connection-oriented routing |
23 |
Proxy with UDP |
Use UDP transport |
Datagram-based routing |
24 |
Proxy with NAT Traversal |
Proxy handles NAT |
Media and signaling flow |
25 |
Proxy with SIP Outbound |
Use SIP Outbound mechanism |
Keep-alives and flow recovery work |
26 |
Proxy with Path Header |
Proxy inserts Path header |
Registrar uses path for requests |
27 |
Proxy with Diversion Header |
Proxy adds Diversion info |
Call history preserved |
28 |
Proxy with Privacy Header |
Proxy enforces privacy |
Identity hidden |
29 |
Proxy with P-Asserted-Identity |
Proxy asserts identity |
Identity trusted by downstream |
30 |
Proxy with P-Charging-Vector |
Proxy adds charging info |
Used for billing |
31 |
Proxy with Max-Forwards |
Decrement Max-Forwards |
Prevents loops |
32 |
Proxy Loop Detection |
Detect loop via Via headers |
Loop avoided |
33 |
Proxy Overload Handling |
Proxy under load |
Rejects or queues requests |
34 |
Proxy Failover |
Primary proxy fails |
Backup proxy used |
35 |
Proxy Load Balancing |
Distribute calls across proxies |
Load is balanced |
36 |
Proxy with ENUM Lookup |
Use ENUM to resolve number |
URI returned |
37 |
Proxy with SIP Trunk |
Route to PSTN via trunk |
Call reaches PSTN |
38 |
Proxy with Media Relay |
Proxy relays RTP |
Media flows through proxy |
39 |
Proxy with Topology Hiding |
Proxy hides network details |
Only proxy-visible info exposed |
40 |
Proxy with Header Manipulation |
Proxy rewrites headers |
Headers modified as configured |
41 |
Proxy with Call Admission Control |
Enforce CAC policy |
Excess calls rejected |
42 |
Proxy with QoS Marking |
Mark SIP/RTP packets |
QoS policies applied |
43 |
Proxy with Logging |
Log SIP messages |
Logs contain full trace |
44 |
Proxy with Call Recording |
Fork media to recorder |
Call recorded |
45 |
Proxy with Call Transfer |
REFER routed via proxy |
Call transferred |
46 |
Proxy with Call Hold |
INVITE with a=inactive |
Media paused |
47 |
Proxy with Early Media |
183 with SDP via proxy |
Early media flows |
48 |
Proxy with Replaces Header |
INVITE with Replaces |
Call leg replaced |
49 |
Proxy with History-Info |
Add History-Info headers |
Call path traceable |
50 |
Proxy with Feature-Caps |
Proxy advertises capabilities |
UA adapts behavior |
Presence and Messaging - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Basic MESSAGE Method |
Send SIP MESSAGE request |
Message is delivered |
2 |
MESSAGE with Text Body |
Send plain text in MESSAGE |
Text is received |
3 |
MESSAGE with XML Body |
Send XML content |
XML parsed correctly |
4 |
MESSAGE with CPIM Format |
Use CPIM format in body |
Message interpreted |
5 |
MESSAGE with Multipart Body |
Send multipart MIME |
All parts processed |
6 |
MESSAGE with Large Payload |
Send large message |
Delivered without truncation |
7 |
MESSAGE with Custom Header |
Add X-Custom-Header |
Header is retained |
8 |
MESSAGE with Delivery Report |
Request delivery receipt |
Receipt received |
9 |
MESSAGE with Unsupported Content-Type |
Use unknown MIME type |
Message rejected or ignored |
10 |
MESSAGE with Authentication |
Require credentials |
Authenticated successfully |
11 |
Basic SUBSCRIBE Method |
Send SUBSCRIBE request |
Subscription accepted |
12 |
SUBSCRIBE with Expires Header |
Set expiration time |
Subscription expires accordingly |
13 |
SUBSCRIBE with Event Header |
Use presence event |
Presence updates triggered |
14 |
SUBSCRIBE with Contact Header |
Include contact info |
Contact stored |
15 |
SUBSCRIBE with Retry-After |
Server responds with Retry-After |
Client retries later |
16 |
NOTIFY with Presence Info |
Send NOTIFY with presence XML |
Presence updated |
17 |
NOTIFY with PIDF Format |
Use PIDF XML in NOTIFY |
Parsed and displayed |
18 |
NOTIFY with Tuple Status |
Include tuple status |
Status shown correctly |
19 |
NOTIFY with Multiple Tuples |
Send multiple presence states |
All displayed |
20 |
NOTIFY with Contact Priority |
Include priority info |
Priority respected |
21 |
NOTIFY with Invalid XML |
Send malformed PIDF |
Error handled gracefully |
22 |
NOTIFY with Authentication |
Require credentials |
Authenticated successfully |
23 |
PUBLISH with Presence Info |
Send PUBLISH with PIDF |
Info stored on server |
24 |
PUBLISH with ETag |
Use ETag for versioning |
Version tracked |
25 |
PUBLISH with Expires Header |
Set expiration time |
Info expires accordingly |
26 |
PUBLISH with Partial Update |
Send partial presence info |
Info merged correctly |
27 |
Presence Server Aggregation |
Aggregate multiple sources |
Unified presence shown |
28 |
Presence Subscription Refresh |
Re-SUBSCRIBE before expiry |
Subscription renewed |
29 |
Presence Subscription Termination |
Send SUBSCRIBE with Expires: 0 |
Subscription removed |
30 |
Presence with Watcher Info |
Notify about watchers |
Watcher list updated |
31 |
Presence with RLS (Resource List Server) |
Subscribe to list |
Multiple NOTIFYs received |
32 |
Presence with XCAP |
Modify presence rules via XCAP |
Rules updated |
33 |
Presence with Privacy Rules |
Apply privacy filters |
Info hidden as configured |
34 |
Presence with Offline State |
Publish offline status |
Shown as offline |
35 |
Presence with Busy State |
Publish busy status |
Shown as busy |
36 |
Presence with Custom Note |
Include note in PIDF |
Note displayed |
37 |
Presence with Device Info |
Include device ID |
Device shown in UI |
38 |
Presence with Location Info |
Include geolocation |
Location displayed |
39 |
Presence with Calendar Integration |
Sync with calendar |
Status auto-updated |
40 |
Presence with Do Not Disturb |
Publish DND status |
Calls/messages blocked |
41 |
Presence with Multiple Devices |
Publish from multiple UAs |
All states aggregated |
42 |
Presence with Priority Handling |
Prioritize device presence |
Highest priority shown |
43 |
Presence with Throttling |
Limit NOTIFY frequency |
Rate respected |
44 |
Presence with Subscription Authorization |
Require approval |
Subscription pending |
45 |
Presence with Network Change |
Update on IP change |
Presence updated |
46 |
Presence with SIP Outbound |
Maintain presence over flow |
Flow persisted |
47 |
Presence with NAT Traversal |
Maintain presence behind NAT |
Updates received |
48 |
Presence with TLS |
Secure presence updates |
Encrypted signaling |
49 |
Presence with Logging |
Log presence events |
Logs complete |
50 |
Presence with Error Handling |
Simulate server error |
Client retries or fails gracefully |
Security Support - Testcases
# |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
TLS Handshake Success |
Establish TLS connection |
Handshake completes successfully |
2 |
TLS with Valid Certificate |
Use valid server certificate |
Connection trusted |
3 |
TLS with Expired Certificate |
Use expired certificate |
Connection rejected |
4 |
TLS with Self-Signed Certificate |
Use self-signed cert |
Warning or rejection based on policy |
5 |
TLS with Mutual Authentication |
Use client and server certs |
Both sides authenticated |
6 |
TLS with Cipher Suite Negotiation |
Offer multiple cipher suites |
Strongest common suite selected |
7 |
TLS with Session Resumption |
Reconnect using session ID |
Session resumed |
8 |
TLS with Certificate Revocation |
Use revoked cert |
Connection rejected |
9 |
TLS with SNI (Server Name Indication) |
Include SNI in handshake |
Correct cert returned |
10 |
TLS with Weak Cipher |
Use deprecated cipher |
Connection rejected |
11 |
TLS with OCSP Stapling |
Server provides OCSP response |
Client validates cert status |
12 |
TLS with Large SIP Message |
Send large SIP message |
Message encrypted and delivered |
13 |
TLS with SIP Proxy |
Proxy handles TLS |
Encrypted signaling forwarded |
14 |
TLS with SIP Registrar |
Register over TLS |
Registration secured |
15 |
TLS with SIP Redirect |
Redirect over TLS |
Redirection secured |
16 |
TLS with SIP OPTIONS |
Send OPTIONS over TLS |
Capabilities returned securely |
17 |
TLS with SIP MESSAGE |
Send MESSAGE over TLS |
Message encrypted |
18 |
TLS with SIP SUBSCRIBE |
Subscribe over TLS |
Subscription secured |
19 |
TLS with SIP NOTIFY |
Send NOTIFY over TLS |
Notification encrypted |
20 |
TLS with SIP PUBLISH |
Publish presence over TLS |
Info secured |
21 |
TLS with SIP INVITE |
Send INVITE over TLS |
Call setup encrypted |
22 |
TLS with SIP BYE |
Send BYE over TLS |
Call termination secured |
23 |
TLS with SIP CANCEL |
Send CANCEL over TLS |
Cancellation encrypted |
24 |
TLS with SIP PRACK |
Send PRACK over TLS |
Reliable response acknowledged securely |
25 |
TLS with SIP UPDATE |
Send UPDATE over TLS |
Session modified securely |
26 |
S/MIME with Signed MESSAGE |
Sign SIP MESSAGE |
Signature verified |
27 |
S/MIME with Encrypted MESSAGE |
Encrypt SIP MESSAGE |
Message decrypted by recipient |
28 |
S/MIME with Signed INVITE |
Sign SIP INVITE |
Signature validated |
29 |
S/MIME with Encrypted INVITE |
Encrypt SIP INVITE |
INVITE decrypted |
30 |
S/MIME with Multipart MIME |
Use multipart/signed |
Signature and content parsed |
31 |
S/MIME with Invalid Signature |
Tamper with signed message |
Signature fails validation |
32 |
S/MIME with Expired Certificate |
Use expired cert for signing |
Signature rejected |
33 |
S/MIME with Certificate Chain |
Include full cert chain |
Chain validated |
34 |
S/MIME with Detached Signature |
Use detached signature |
Signature verified |
35 |
S/MIME with Encrypted SDP |
Encrypt SDP body |
Media info protected |
36 |
S/MIME with MIME Type Validation |
Use correct MIME types |
Message accepted |
37 |
S/MIME with Key Exchange |
Exchange keys for encryption |
Keys validated |
38 |
S/MIME with Certificate Revocation |
Use revoked cert |
Message rejected |
39 |
S/MIME with Multiple Recipients |
Encrypt for multiple users |
All can decrypt |
40 |
S/MIME with Signature Timestamp |
Include timestamp |
Time validated |
41 |
S/MIME with Policy Enforcement |
Enforce signing/encryption |
Policy applied |
42 |
S/MIME with Logging |
Log signed/encrypted messages |
Logs contain full trace |
43 |
S/MIME with Proxy Forwarding |
Forward encrypted message |
Proxy does not alter content |
44 |
S/MIME with Replay Attack |
Replay signed message |
Detected and rejected |
45 |
S/MIME with MIME Boundary Errors |
Malformed MIME structure |
Message rejected |
46 |
S/MIME with Large Payload |
Encrypt large message |
Delivered successfully |
47 |
S/MIME with Certificate Pinning |
Use pinned cert |
Only pinned cert accepted |
48 |
S/MIME with Signature Algorithm Negotiation |
Use different algorithms |
Compatible one selected |
49 |
S/MIME with Encrypted Headers |
Encrypt SIP headers |
Headers protected (if supported) |
50 |
S/MIME with End-to-End Encryption |
Encrypt from UA to UA |
Only endpoints can decrypt |
Reference links