[OpenSER-Users] OpenSER as a conditional stateless proxy
lu
luzango.mfupe at tuune.mobi
Tue Nov 6 14:05:29 CET 2007
Hi,
Iam too interested in this discussion, can some one explicitly elaborate
how iam gonna satisfy all the conditions in a situation whereby OpenSER
is relaying to Asterisk for local PSTN calls and to another a voip
provider for International PSTN calls, ofcourse this applies for any
numeric uri.
I have a Sipwise generated config with offnet-termination which i tried
to edit route [5] 'invite-find-calee' using t_relay() and
rewritehostport conditions, but my concern is the role of LCR module
which is supposed to be taking care of the GWs especially in route[7]
"Request route invite-to-external", will it gonna disrupt/conflict my
set conditions??
########################################################################
# Request route 'invite-find-callee'
########################################################################
route[5]
{
if(alias_db_lookup("dbaliases"))
{
xlog("L_INFO", "Callee was aliased - M=$rm RURI=$ru F=$fu T=$tu IP=$si
ID=$ci\n");
#CHECK WHERE THE REQUEST IS FROM???-edit by me
if($fd=="sip.domain")
{
#FORWARD THEM TO ASTERISK -edit by me
rewritehostport("asterisk IP");
#AND THEN TAKE THEM TO REQUEST ROUTE 'base-outbound'-edit by me
route(3);
}
else if(uri=~"Sip:00[0-9]+@"){
#RELAY THEM TO INTERNETIONAL PSTN-edit by me
t_relay("IP_of_international_PSTN_ provider");
route (3);
}
if(!is_domain_local("$rd"))
{
setflag(20);
route(7);
}
if(does_uri_exist())
{
xlog("L_INFO", "Callee is local - M=$rm RURI=$ru F=$fu T=$tu IP=$si
ID=$ci\n");
route(6);
}
else
{
xlog("L_INFO", "Callee is not local - M=$rm RURI=$ru F=$fu T=$tu IP=
$si ID=$ci\n");
route(7);
}
exit;
}
########################################################################
# Request route 'invite-to-external'
########################################################################
route[7]
{
if(isflagset(20))
{
xlog("L_INFO", "Call to foreign domain - M=$rm RURI=$ru F=$fu T=$tu
IP=$si ID=$ci\n");
route(3);
exit;
}
if(!isflagset(23))
{
# don't allow calls relaying from PSTN to PSTN, if not explicitely
forwarded
if(uri =~ "^sip:[0-9]+@")
{
# only route numeric users to PSTN
if(!load_gws())
{
xlog("L_ERR", "Error loading PSTN gateways - M=$rm RURI=$ru F=$fu T=
$tu IP=$si ID=$ci\n");
sl_send_reply("503", "PSTN Termination Currently Unavailable");
exit;
}
if(!next_gw())
{
xlog("L_ERR", "No PSTN gateways available - M=$rm RURI=$ru F=$fu T=
$tu IP=$si ID=$ci\n");
sl_send_reply("503", "PSTN Termination Currently Unavailable");
exit;
}
setflag(21);
t_on_failure("1");
route(3);
}
}
xlog("L_INFO", "Call to unknown user - M=$rm RURI=$ru F=$fu T=$tu IP=
$si ID=$ci\n");
sl_send_reply("404", "User Not Found");
exit;
}
WBR,
LU.
On Tue, 2007-11-06 at 06:35 +0000, users-request at lists.openser.org
wrote:
> Send Users mailing list submissions to
> users at lists.openser.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://lists.openser.org/cgi-bin/mailman/listinfo/users
> or, via email, send a message with subject or body 'help' to
> users-request at lists.openser.org
>
> You can reach the person managing the list at
> users-owner at lists.openser.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Users digest..."
>
>
> Today's Topics:
>
> 1. Re: Openser as a conditional stateless proxy (Christian Schlatter)
> 2. Presence RLS module: initialization error (Schumann Sebastian)
> 3. CPL and XML schema (Daniel)
> 4. Re: MediaProxy 1.9.0 - Radius (Miles Scruggs)
> 5. Re: Is it possible to insert avp to reply message? (Tung Tran)
> 6. Re: Is it possible to insert avp to reply message?
> (I?aki Baz Castillo)
> 7. Cellphones and voicemail (Chris Heiser)
> 8. dispatcher with GeoIP (Victor Sergeev)
> 9. Re: Cellphones and voicemail (Christian Schlatter)
> 10. Re: retransmissions after final response (Vasile Zaharia)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 05 Nov 2007 10:16:18 -0500
> From: Christian Schlatter <cs at unc.edu>
> Subject: Re: [OpenSER-Users] Openser as a conditional stateless proxy
> To: Padmaja <padmaja.rv at vodcalabs.com>
> Cc: users at lists.openser.org
> Message-ID: <472F33C2.90900 at unc.edu>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Padmaja wrote:
> > Hi,
> >
> > Thanks for the reply,
> > Could you provide me the example script for stateless forwarding of
> > invite when a call is received from say a 911 operator to the server?
> > I suppose this should be implemented by checking the From field of the
> > invite and if it is from a certain 911, then it should be forwarded
> > statelessly (or is this logic incorrect?). I am new to the Openser
> > stuff, so I do not wish to change the script myself.
>
>
> Your logic is correct, you can either check the From: header or the
> request URI or any other part of an incoming SIP message to make the
> routing decision.
>
> A simple example looks like:
>
> if (is_method('INVITE'))
> {
> # check if from URI domain equals 911operator.com
> if ($fd == '911operator.com')
> {
> # relay stateless using request URI
> forward();
> exit;
> }
> else
> {
> # relay statefull using request URI
> if (!t_relay())
> {
> sl_reply_error();
> };
> exit;
> }
> }
>
> Please always CC users at lists.openser.org so that others can take
> advantage of the discussion.
>
> /Christian
>
> >
> > Thanks again,
> > Padmaja
> >
> > ----- Original Message ----- From: "Christian Schlatter" <cs at unc.edu>
> > To: "Padmaja" <padmaja.rv at vodcalabs.com>
> > Cc: <users at lists.openser.org>
> > Sent: Monday, November 05, 2007 4:53 AM
> > Subject: Re: [OpenSER-Users] Openser as a conditional stateless proxy
> >
> >
> >> Padmaja wrote:
> >>> Hi all,
> >>>
> >>> Can any one tell me if the same running instance of Openser can be
> >>> configured as a stateful proxy for some user accounts and for some
> >>> numbers like emergency services, it acts like a stateless proxy, just
> >>> forwarding the request to the destination?
> >>
> >> Yes, it only depends on what forwarding function is used in the
> >> routing script:
> >>
> >> - t_forward(..) --> stateless
> >>
> >> - t_relay(..) --> stateful
> >>
> >> /Christian
More information about the Users
mailing list