Using a special header field is even simpler, because it requires no
implementation at all. Adding and testing for a message header field can
be done right out of the box from the configuration script.
Jan.
On 03-11 19:43, Klaus Darilion wrote:
I like Maxims idea of inserting a flag in the SDP body
most, because it
seems to be easy to implement. The drawback is that all SIP providers
have to support it - but this problem also occours with the other
solutions.
regards,
klaus
> -----Original Message-----
> From: Jan Janak [mailto:jan@iptel.org]
> Sent: Monday, November 03, 2003 7:11 PM
> To: Klaus Darilion
> Cc: Maxim Sobolev; serusers(a)lists.iptel.org
> Subject: Re: [Serusers] rtpproxy question
>
>
> I think the solution is to modify the RTP proxy. The RTP
> proxy should be
> symmetric only for user agents that belong to the domain of the proxy
> and if the other direction is a foreign user, it should send
> the data to
> the IP taken from SDP and not wait for any incomming packets.
>
> Let's take
iptel.org as a hypothetical example:
>
> If both caller and callee have
iptel.org as their domain, the
> RTP proxy
> will work as usual.
>
> If caller is not from
iptel.org but callee is, then the SIP proxy will
> pass IP of the NAT box (known from Contact in usrloc) and IP
> from SDP of
> INVITE to RTP proxy. The RTP proxy will be symmetric for the
> NAT IP and
> non-symmetric for the IP from SDP.
>
> In the reverse direction, i.e. when callee is not from
iptel.org and
> caller is (i.e. the invite is coming from
iptel.org to fwd, for
> example), the SIP proxy will pass IP from the received
> parameter for the
> "symmetric side" and IP from SDP of 200 OK for the
> "non-symmetric part".
>
> That way it is not ensured that there is just one RTP proxy
> along the path,
> but it should work.
>
> In other words, every SIP proxy provides "symmetric RTP proxy" for its
> users only, it doesn't provide it for foreign users.
>
> Drawback of this approach is that it is not possible to use
> only one RTP
> proxy in cases like:
>
> UA---NAT---Sipphone---iptel.org---NAT---UA
>
> In that case both Sipphone and
iptel.org must enforce RTP proxy, each
> proxy is responsible for getting their users through NAT.
>
> Anyway, implement and deploy something like that is quite complex.
>
> Jan.
>
> On 03-11 18:49, Klaus Darilion wrote:
> > But if UA1 ist not behind NAT, proxy 2 should activated its
> rtpproxy to
> > enable a communciation although there are more than 2 Via headers.
> >
> > I guess there is no solution yet which will work in all
> scenarios as one
> > SIP proxy will never know the NAT-traversal strategy of
> other proxies.
> >
> > regards,
> > klaus
> >
> > > -----Original Message-----
> > > From: Maxim Sobolev [mailto:sobomax@portaone.com]
> > > Sent: Monday, November 03, 2003 6:40 PM
> > > To: Jan Janak
> > > Cc: Klaus Darilion; serusers(a)lists.iptel.org
> > > Subject: Re: [Serusers] rtpproxy question
> > >
> > >
> > > There is another possible solution: modify nathelper to only
> > > apply RTP
> > > proxy redirection if there is only one Via in the
> request. This will
> > > ensure that in the situation when there are multiple SIP/RTP
> > > proxies in
> > > the path only first one will handle RTP. Unfortunately it
> > > will not help
> > > if there are any SIP B2BUAs on the way.
> > >
> > > -Maxim
> > >
> > > Jan Janak wrote:
> > > > On 03-11 19:18, Maxim Sobolev wrote:
> > > >
> > > >>Klaus Darilion wrote:
> > > >>
> > > >>
> > > >>>Hi!
> > > >>>
> > > >>>As the RTP relaying does not work with 2 RTP proxies, how
> > > can a proxy
> > > >>>detect
> > > >>>if the RTP stream is already redirected to an RTP proxy?
> > > >>>
> > > >>>My problem is the following scenario:
> > > >>>
> > > >>>UA1 --NAT-- SIP proxy 1 -- SIP proxy 2 --NAT--
UA2
> > > >>> rtpproxy1 rtpproxy2
> > > >>>
> > > >>>UA1 invites UA2. SIP proxy 1 detects that UA1 is behind
> > > NAT and enables the
> > > >>>rtpproxy1 and forwards the invite to SIP proxy2. SIP proxy
> > > 2 knows that UA2
> > > >>>is also behind NAT. Usually, SIP proxy 2 would activate
> > > the rtpproxy2, but
> > > >>>in this case this would not work as there is already an
> > > rtpproxy involved.
> > > >>>How can the SIP proxy 2 detect that the IP address in the
> > > SDP is the IP
> > > >>>address of an RTP proxy?
> > > >>>
> > > >>>
> > > >>
> > > >>Known problem. I think that I'll modify nathelper, so that
> > > >>force_rtp_proxy() will insert some flag into the SDP body,
> > > which will
> > > >>tell other proxies along the request route that there is no
> > > need to put
> > > >>another RTP relay into the RTP path.
> > > >
> > > >
> > > > Another option would be to insert a header field telling
> > > that another
> > > > RTP proxy is being used already.
> > > >
> > > > The problem is that both solutions (header field and SDP
> > > flags) will
> > > > be not interoperable.
> > > >
> > > > Another option would be to modify the RTP proxy so
> that it will be
> > > > symmetric only for user agents that belong to the domain
> > > of the proxy.
> > > > That would probably complicate things a bit.
> > > >
> > > > Jan.
> > > >
> > > >
> > >
> > >
> > >
>
>