Re: Action item from yesterday's meeting
Martin Stiemerling <[email protected]> Tue, 30 Nov 2004 09:49:21 +0100
| Newsgroups | gmane.ietf.midcom |
|---|---|
| Message-ID | <242C638092BAF8AAB6A72F14@[10.1.1.109]> |
Hi Cullen, --On Montag, 29. November 2004 14:21 Uhr -0800 Cullen Jennings <[email protected]> wrote: | | Ok, I think I understand - combining Juergen's and Martin's emails - just | to make sure I have this right, in the case with an outbound call (so UA1 | called UA2) and UA1 controls NAT. | | +-----+ | | M | | | I | | | I | | | D | | UA1 | L | UA2 | +------+ | E | +------+ | |SIP UA+------------------+ B +------------------+SIP UA| | |MIDCOM| | O | | EXT | | |AGENT +..................+ X +..................+ | | +------+ +-----+ +------+ | A0 A1 A2 A3 | | | UA1 contacts NAT with a PER for (A0/port0, */*) direction inbound and the | NAT returns A2/port2. UA1 sends A2/port2 in offer SDP. UA2 starts sending | early media to A2/port2 this which gets forwarded to A0/port0. Then UA2 | sends answer with A3/port3 to UA1. UA1 tells NAT to create | (A0/port0,A3/port3) outbound and NAT returns A1/port1 then UA1 starts | sending media to A1/port1 and NAT forwards to A3/port3. UA2 answers and | sends 200 which UA1 accepts then UA1 changes the (A0/port0,*/*) inbound | mapping to be a (A0/port0,A3/port3) inbound mapping. | | Did I get this right? I think I understand now - thanks for the | clarification. Yes, you got this right!. Your text describes exactly the way how it works if UA1 is calling UA2. Martin | | | | | On 11/29/04 5:25 AM, "Juergen Quittek" <[email protected]> wrote: | |> Cullen, |> |> --On 27.11.2004 15:12 h -0800 Cullen Jennings wrote: |> |>> I don't think I fully understand the issue yet |>> |>> Let's ignore FTP for a second but consider any protocol that has |>> separated control and media channels. For example, if SIP was used to |>> set of a MSRP IM session - it seems like this problem would happen. Am |>> I confused? Actually I can answer that, I am confused, let me restate |>> the questions - Can you straighten me out on how this all works? I am |>> particularly interested in the case of SIP setting up a session of RTP |>> and TCP sessions between endpoints. |>> |>> For simplicity sake, lets imagine that internal endpoint A0 is also a |>> SIP UA that can control the middle box. |> |> This case, which is one of the core scenarios of the MIDCOM WG. |> It is fully supported by the current semantics as well as by the |> semantics Suresh suggested even in case of a twice-NAT. |> |> Let's assume that the SIP UA operates behind a NAT and that it has |> already established NAT binding and session that allows communication |> with other SIP UAs and servers across the twice NAT using the SIP |> protocol. Then SIP signaling itself is not the problem. |> |> In case of an INVITE message issues by the local terminal, |> the SIP UA could operate as follows: |> |> 1. scan the SDP payload and extract the local terminal's address |> parameters A0 (IP address, port number) |> 2. request address translation of these local address parameters |> at the NAT using the MIDCOM protocol. |> Here both semantics under discussion are similar. |> The only input you have is the local terminal address A0. |> This is sent to the NAT as input parameter |> The NAT returns the translated external parameters A2. |> If you want to apply a more tight security policy, you use |> the Policy Reserve Rule (PRR) transaction that does not yet |> enable NAT service for the address and that may block early |> media. Otherwise you would use the Policy Enable Rule (PER) |> that immediately enables the NAT service. |> 3. Then the original invite message needs to be patched replacing |> the original address parameters A0 with the parameters A2 returned |> by the NAT. The patched message if forwarded following SIP routing |> rules. |> 4. On receipt of an OK message, the UA scans the SDP payload and |> extracts the other terminal's address parameters A3. |> 5. Now a mapping for the reverse direction need to be established |> using the MIDCOM protocol again. According to the current |> semantics, the SIP UA sends A0 and A3, the terminal's address |> parameters, with Suresh's semantics it would be A2 and A3. |> |> For the reverse direction (incoming call, the procedure is similar. |> |> This all works for RTP, RTSP, TCP, etc. |> |> Thanks, |> |> Juergen | |