[Serusers] LCR Backport Example For ser-0.9
Zeus Ng
zeus.ng at isquare.com.au
Wed Mar 16 04:18:46 CET 2005
How about something like this.
With the initial INVITE,
... Route processing ...
if (caller is natted) {
subst('/From:(.*)<(.*)>(.*)/From:\1<\2>;nat=yes\3/');
}
call nathelper or mediaproxy
t_on_reply(nat reply route);
t_relay();
In your reply route,
if (callee is natted) {
subst('/From:(.*)<(.*)>(.*)/From:\1<\2>;nat=yes\3/');
call nathelper or mediaproxy
... Other processing ...
In your loose route,
if (loose_route()) {
if (method=="INVITE") {
if (search("my_ser_detect_nat=yes") || (sdp in private address )) {
call nathelper or mediaproxy
}
}
on reply route
t_relay()
}
This does work for me most of the time. However, there are odd situation
that this does not work.
Zeus
> -----Original Message-----
> From: Java Rockx [mailto:javarockx at gmail.com]
> Sent: Wednesday, 16 March 2005 12:01 PM
> To: Zeus Ng
> Cc: serusers at lists.iptel.org
> Subject: Re: [Serusers] LCR Backport Example For ser-0.9
>
>
> OK, but there are two sides of the conversation to test here for NAT.
>
> Should nat_uac_test("8") be used in a reply_route or
> something? (Actually this won't work because the re-INIVITE
> would need to have the c= field in the SDP rewritten if the
> destination is NATed).
>
> Anyhow, I mean if the original INVITE is from a NATed client,
> then I can use client_nat_test() but on the destination side,
> I still need to know if RTP proxying is needed.
>
> How do I do this?
>
> Regards,
> Paul
>
>
> On Wed, 16 Mar 2005 11:19:50 +1100, Zeus Ng
> <zeus.ng at isquare.com.au> wrote:
> > You won't be able to do lookup most of the time with
> re-INVITE if it
> > falls into loose_route as the R-URI may have changed to
> > sip:user at dest.ip.address. (The same applies to case without loose
> > route as well)
> >
> > With nathelper, you can do nat_uac_test("8") to test for private
> > address in the SDP part and do rtpproxy according. Don't think
> > mediaproxy has this test.
> >
> >
> > > -----Original Message-----
> > > From: serusers-bounces at lists.iptel.org
> [mailto:serusers-bounces at lists.iptel.org]
> > > On Behalf Of Java Rockx
> > > Sent: Wednesday, 16 March 2005 9:03 AM
> > > To: serusers at lists.iptel.org; Juha Heinanen
> > > Subject: Re: [Serusers] LCR Backport Example For ser-0.9
> > >
> > >
> > > Ahhh, I found my mistake, but can someone verify my thought
> > > process??
> > >
> > > I'm using mediaproxy and I only proxy RTP streams if the
> caller or
> > > the callee are behind a NAT device.
> > >
> > > So during a re-INVITE, I cannot just t_relay() the
> message because
> > > the RTP streams will end up at unreachable IP addresses if either
> > > SIP UA is NATed.
> > >
> > > I can use client_nat_test("3") to test the caller's NAT settings,
> > > and for the callee I have to use lookup("location") and test my
> > > nat_flag setting.
> > >
> > > But do I need to call revert_uri() after lookup("location") when
> > > processing re-INVITEs???
> > >
> > > Regards,
> > > Paul
> > >
> > >
> > > On Tue, 15 Mar 2005 16:17:38 -0500, Java Rockx
> <javarockx at gmail.com>
> > > wrote:
> > > > Yep. I agree.
> > > >
> > > > But does this mean for **any** SIP message that
> > > loose_route() returns
> > > > TRUE, I simply call t_relay() and then stop processing
> via a break
> > > > command?
> > > >
> > > > I can't remember, but I thought I ran in to some cases
> > > where even when
> > > > loose_route() returned TRUE, I still had to do some other
> > > processing.
> > > >
> > > > Regards,
> > > > Paul
> > > >
> > > >
> > > > On Tue, 15 Mar 2005 20:13:40 +0200, Juha Heinanen
> <jh at tutpro.com>
> > > > wrote:
> > > > > Java Rockx writes:
> > > > >
> > > > > > I thought I had mine right, but then I realized that some
> > > > > re-INVITE > messages were not being handled properly and
> > > calls were
> > > > > being > disconnected.
> > > > >
> > > > > you should not use or need to use lcr modules functions for
> > > > > re-invites. re-invites are in-dialog requests that
> are forwarded
> > > > > based on route headers.
> > > > >
> > > > > -- juha
> > > > >
> > > >
> > >
> > > _______________________________________________
> > > Serusers mailing list
> > > serusers at lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
> > >
> >
> >
>
More information about the sr-users
mailing list