SSCA Call Flows 5 — Questions and Answers
Question 1: In a SIP outbound proxy call flow, why does a UA send all requests to the outbound proxy even for destinations it could reach directly?
- To avoid DNS lookups
- To allow the proxy to apply policy, authentication, and routing on behalf of the UA (Correct answer)
- To reduce RTP latency
- Because SIP requires all traffic to pass through a B2BUA
Correct answer: To allow the proxy to apply policy, authentication, and routing on behalf of the UA
An outbound proxy centralizes policy enforcement, NAT traversal, authentication, and routing, simplifying UA configuration.
Question 2: What happens to the RTP stream when a SIP call is put on hold using a=inactive in the SDP?
- RTP is encrypted with a new key
- Both sending and receiving of RTP packets are stopped (Correct answer)
- Only receiving is stopped; sending continues
- RTP continues but DTMF is blocked
Correct answer: Both sending and receiving of RTP packets are stopped
a=inactive means the UA will neither send nor receive media, effectively stopping RTP in both directions for that media stream.
Question 3: In a SIP forking scenario, a proxy receives a 180 Ringing from one branch and a 200 OK from another branch simultaneously. What should the proxy forward to the UAC?
- Both responses in the order they arrived
- Only the 180 Ringing, then wait for more 200 OKs
- The 200 OK to establish the call and cancel the branch that sent 180 (Correct answer)
- It drops both and sends 503 to the UAC
Correct answer: The 200 OK to establish the call and cancel the branch that sent 180
The proxy forwards the 200 OK to the UAC to confirm the session and sends CANCEL to the branch that is still ringing (180 Ringing branch).
Question 4: Which SIP call flow element is responsible for generating the Call-ID for a new dialog?
- The proxy that receives the initial INVITE
- The UAC that originates the INVITE request (Correct answer)
- The registrar that authenticated the user
- The UAS that sends the 200 OK
Correct answer: The UAC that originates the INVITE request
The UAC generates the Call-ID, which must be globally unique and remain constant for all messages within the same dialog.
Question 5: In a SIP call flow involving NAT traversal, what is the purpose of the Via header's rport parameter?
- To specify the RTP port for media
- To request the server to record the actual source port from which the request was received and include it in the response (Correct answer)
- To indicate SRTP is being used
- To signal that the UA supports IPv6
Correct answer: To request the server to record the actual source port from which the request was received and include it in the response
The rport parameter asks the server to use the source port of the UDP packet (the NAT-mapped port) when sending the response, solving symmetric NAT issues.
Question 6: What is the correct sequence of SIP messages for a basic call setup over UDP between two UAs without a proxy?
- INVITE → 100 Trying → 180 Ringing → 200 OK → ACK (Correct answer)
- INVITE → 200 OK → ACK → 180 Ringing
- REGISTER → INVITE → 200 OK → BYE
- OPTIONS → INVITE → 180 Ringing → 200 OK
Correct answer: INVITE → 100 Trying → 180 Ringing → 200 OK → ACK
A standard SIP call setup follows: INVITE, 100 Trying (stops retransmissions), 180 Ringing (alerting), 200 OK (accepted), then ACK to confirm.
Question 7: In a SIP B2BUA call flow, how does the B2BUA differ from a stateless proxy in handling INVITE transactions?
- A B2BUA forwards the INVITE unchanged while a proxy terminates it
- A B2BUA terminates the inbound INVITE and generates a new outbound INVITE as a UAC, maintaining full dialog state on both legs (Correct answer)
- A B2BUA only handles media, not signaling
- A B2BUA uses REFER while a proxy uses Route headers
Correct answer: A B2BUA terminates the inbound INVITE and generates a new outbound INVITE as a UAC, maintaining full dialog state on both legs
A B2BUA acts as UAS on the inbound leg and UAC on the outbound leg, creating two independent dialogs and full control over both signaling legs.
In a SIP outbound proxy call flow, why does a UA send all requests to the outbound proxy even for destinations it could reach directly?