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@lists.openser.org wrote:
Send Users mailing list submissions to users@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@lists.openser.org
You can reach the person managing the list at users-owner@lists.openser.org
When replying, please edit your Subject line so it is more specific than "Re: Contents of Users digest..."
Today's Topics:
- Re: Openser as a conditional stateless proxy (Christian Schlatter)
- Presence RLS module: initialization error (Schumann Sebastian)
- CPL and XML schema (Daniel)
- Re: MediaProxy 1.9.0 - Radius (Miles Scruggs)
- Re: Is it possible to insert avp to reply message? (Tung Tran)
- Re: Is it possible to insert avp to reply message? (I?aki Baz Castillo)
- Cellphones and voicemail (Chris Heiser)
- dispatcher with GeoIP (Victor Sergeev)
- Re: Cellphones and voicemail (Christian Schlatter)
- Re: retransmissions after final response (Vasile Zaharia)
Message: 1 Date: Mon, 05 Nov 2007 10:16:18 -0500 From: Christian Schlatter cs@unc.edu Subject: Re: [OpenSER-Users] Openser as a conditional stateless proxy To: Padmaja padmaja.rv@vodcalabs.com Cc: users@lists.openser.org Message-ID: 472F33C2.90900@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@lists.openser.org so that others can take advantage of the discussion.
/Christian
Thanks again, Padmaja
----- Original Message ----- From: "Christian Schlatter" cs@unc.edu To: "Padmaja" padmaja.rv@vodcalabs.com Cc: users@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