the con- nectivity checks. NAT A implements an endpoint-independent mapping and filtering behavior, while NAT B implements an address-dependent mapping and filtering behavior. When UA B receives an INVITE message from UA A, it inserts in its 200 OK answer a candidate list that includes the server reflex- ive candidate from the public STUN server. When UA A starts connectivity checks, the STUN binding request sent to the UA B server reflexive candi- date is dropped by NAT B because of its address-dependent filtering policy. Instead, a STUN binding request from UA B is successfully delivered to UA A as arriving from the transport address (B:b2) assigned by NAT B (since the NAT changes mapping depending on the target). UA A replies with a STUN binding response, while at the same time discovering this new external address for UA B, which is referred to as peer-reflexive candidate since it is discovered directly from the peer. Later, UA A checks the peer reflexive candidate of B by sending a STUN binding request to the transport address (B:b2). A basic approach for choosing a winning candidate pair is to declare a win- ner as soon as all the checks for all the components of the session are successful. However, ICE defines more sophisticated techniques that continue the execu- tion of connectivity checks even in case of success. For further detail, please refer to the ICE Internet draft [7,8]. To conclude the procedure, once the win- ning candidate pairs are identified, if they differ from the default candidates, C 2009 by Taylor & Francis Group, LLC SIP Handbook: Services, Technologies, and Security i.e., the entries stored in the m and C lines of the original messages used to exchange the lists, they are exchanged again by the UAs. 12.6 ALEX: Ensuring End-to-End Connectivity for Both SIP and Media Flows across NATs The address list extension (ALEX) [14] is a NAT traversal solution for both SIP and media flows developed by the NetGroup at Politecnico di Torino. The solutions presented SO far address NAT traversal for 