[SR-Users] #!define and #!subst problem

2011-03-08 Thread Klaus Darilion
Hi!

I tried

#!subst /IPADDRESS_VIRTUAL/83.136.32.161/
listen=udp:IPADDRESS_VIRTUAL:5060

and

#!define IPADDRESS_VIRTUAL 83.136.32.161
listen=udp:IPADDRESS_VIRTUAL:5060

Both do not work - am I doing something wrong or is this a known
limitation with listen statements?

Thanks
Klaus

___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


[SR-Users] Question about LCR

2011-03-08 Thread Geoffrey Mina
Hello,
I have a question about LCR which I have been unable to solve.  I have 4
upstream carrier gateways owned by 2 carriers.  Each carrier provides a
primary and secondary gateway for load balancing purposes.  On a 5XX error I
am trying to send the same call to the other carrier.  If both carriers
reject the call with 5XX, I allow the response to go downstream to my
asterisk server.  The issue I am running into is that in a scenario where
both my carriers respond with a 5XX, I end up presenting the same call to
all 4 gateways.  I would like to present the call to one gateway on each
carrier and not try the same carriers second gateway for the same call.
Here is what is happening now:

ASTERISK -- INVITE -- KAMAILIO
INVITE -- CARRIER A/GATEWAY 1 -- 5XX Error
INVITE -- CARRIER A/GATEWAY 2 -- 5XX Error
INVITE -- CARRIER B/GATEWAY 1 -- 5XX Error
INVITE -- CARRIER B/GATEWAY 2 -- 5XX Error
KAMAILIO -- 5XX Error -- ASTERISK

OR any combination of the above... i.e.

ASTERISK -- INVITE -- KAMAILIO
INVITE -- CARRIER A/GATEWAY 1 -- 5XX Error
INVITE -- CARRIER B/GATEWAY 2 -- 5XX Error
INVITE -- CARRIER B/GATEWAY 1 -- 5XX Error
INVITE -- CARRIER A/GATEWAY 2 -- 5XX Error
KAMAILIO -- 5XX Error -- ASTERISK


What I want to happen is:

ASTERISK -- INVITE -- KAMAILIO
INVITE -- CARRIER A/GATEWAY 1 or 2 -- 5XX Error
INVITE -- CARRIER B/GATEWAY 1 or 2 -- 5XX Error
KAMAILIO -- 5XX Error -- ASTERISK

I tried dealing with the issue using some flags on the gateway, but i
couldn't get the logic to work properly.  Here is the path I was heading
down, but my plan fell apart after some testing.

CARRIER A has a gateway flag of 1
CARRIER B has a gateway flag of 2

failure_route[1]{
   $var(gw_flag) = $avp(i:712);

while(next_gw()){
if($var(gw_flag) != $avp(i:712)){
xlog(L_INFO,Found an LCR destination which is different
than current, routing. ($ci));
t_on_reply(1);
t_on_failure(1);
t_relay();
exit;
}else{
xlog(L_INFO,The next destination in LCR has the same AVP
flag, skipping. ($ci));
}
}

# let the reply go upstram - it is the default action
xlog(L_ERR, No Next Gateway - M=$rm RURI=$ru F=$fu T=$tu IP=$si
ID=$ci\n);
exit;
}


Any help would be greatly appreciated.

Thanks,
Geoff
___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] #!define and #!subst problem

2011-03-08 Thread Daniel-Constantin Mierla
Hello,

subst is replacing inside the sintring values, those being in between
quotes, like:

#subst /404/408/

sl_send_reply(404, Timeout)

The define is replacing ID tokes, which are alpha-numeric tokens stand
alone.

In your case, you try to replace inside a composite value, and the ip
address is not a stand alone token there - not sure if it supports, but you
try putting the value in between quotes. If does not work, then you have to
break down the listen value in listen with ip and then port separately.

Cheers,
Daniel

On Tue, Mar 8, 2011 at 1:13 PM, Klaus Darilion klaus.mailingli...@pernau.at
 wrote:

 Hi!

 I tried

 #!subst /IPADDRESS_VIRTUAL/83.136.32.161/
 listen=udp:IPADDRESS_VIRTUAL:5060

 and

 #!define IPADDRESS_VIRTUAL 83.136.32.161
 listen=udp:IPADDRESS_VIRTUAL:5060

 Both do not work - am I doing something wrong or is this a known
 limitation with listen statements?

 Thanks
 Klaus

 ___
 SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
 sr-users@lists.sip-router.org
 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users




-- 
Daniel-Constantin Mierla
  http://www.asipto.com
___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] Question about LCR

2011-03-08 Thread Daniel-Constantin Mierla
Hello,

I am not an extensive user of lcr module, but probably next_gw() adds a
branch each time is called in failure route.

If yes (when true you should see some parallel forking, depending o how the
addresses are selected), you can mark the bad branches with a branch flag
and drop them in a branch_route.

while(next_gw()){
if($var(gw_flag) != $avp(i:712)){
xlog(L_INFO,Found an LCR destination which is different
than current, routing. ($ci));
t_on_reply(1);
t_on_failure(1);
t_on_branch(1);
t_relay();
exit;
}else{
xlog(L_INFO,The next destination in LCR has the same AVP
flag, skipping. ($ci));
setbflag(10);
}
}


branch_route[1] {
   if(isbflagset(10))
   drop;
}

However, if the destinations are selected like provider 1, provider 2,
provider 1, provider 2, the condition you have in config file failure route
is not good, since you check for change of the provider in each step, which
happens in this case. Maybe you can use flags to check if a provider was
used (or avps).

Cheers,
Daniel

On Tue, Mar 8, 2011 at 11:35 PM, Geoffrey Mina geoffreym...@gmail.comwrote:

 Hello,
 I have a question about LCR which I have been unable to solve.  I have 4
 upstream carrier gateways owned by 2 carriers.  Each carrier provides a
 primary and secondary gateway for load balancing purposes.  On a 5XX error I
 am trying to send the same call to the other carrier.  If both carriers
 reject the call with 5XX, I allow the response to go downstream to my
 asterisk server.  The issue I am running into is that in a scenario where
 both my carriers respond with a 5XX, I end up presenting the same call to
 all 4 gateways.  I would like to present the call to one gateway on each
 carrier and not try the same carriers second gateway for the same call.
 Here is what is happening now:

 ASTERISK -- INVITE -- KAMAILIO
 INVITE -- CARRIER A/GATEWAY 1 -- 5XX Error
 INVITE -- CARRIER A/GATEWAY 2 -- 5XX Error
 INVITE -- CARRIER B/GATEWAY 1 -- 5XX Error
 INVITE -- CARRIER B/GATEWAY 2 -- 5XX Error
 KAMAILIO -- 5XX Error -- ASTERISK

 OR any combination of the above... i.e.

 ASTERISK -- INVITE -- KAMAILIO
 INVITE -- CARRIER A/GATEWAY 1 -- 5XX Error
 INVITE -- CARRIER B/GATEWAY 2 -- 5XX Error
 INVITE -- CARRIER B/GATEWAY 1 -- 5XX Error
 INVITE -- CARRIER A/GATEWAY 2 -- 5XX Error
 KAMAILIO -- 5XX Error -- ASTERISK


 What I want to happen is:

 ASTERISK -- INVITE -- KAMAILIO
 INVITE -- CARRIER A/GATEWAY 1 or 2 -- 5XX Error
 INVITE -- CARRIER B/GATEWAY 1 or 2 -- 5XX Error
 KAMAILIO -- 5XX Error -- ASTERISK

 I tried dealing with the issue using some flags on the gateway, but i
 couldn't get the logic to work properly.  Here is the path I was heading
 down, but my plan fell apart after some testing.

 CARRIER A has a gateway flag of 1
 CARRIER B has a gateway flag of 2

 failure_route[1]{
$var(gw_flag) = $avp(i:712);

 while(next_gw()){
 if($var(gw_flag) != $avp(i:712)){
 xlog(L_INFO,Found an LCR destination which is different
 than current, routing. ($ci));
 t_on_reply(1);
 t_on_failure(1);
 t_relay();
 exit;
 }else{
 xlog(L_INFO,The next destination in LCR has the same AVP
 flag, skipping. ($ci));
 }
 }

 # let the reply go upstram - it is the default action
 xlog(L_ERR, No Next Gateway - M=$rm RURI=$ru F=$fu T=$tu IP=$si
 ID=$ci\n);
 exit;
 }


 Any help would be greatly appreciated.

 Thanks,
 Geoff

 ___
 SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
 sr-users@lists.sip-router.org
 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users




-- 
Daniel-Constantin Mierla
  http://www.asipto.com
___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] #!define and #!subst problem

2011-03-08 Thread Klaus Darilion

Daniel-Constantin Mierla wrote:

Hello,

subst is replacing inside the sintring values, those being in between 
quotes, like:


#subst /404/408/

sl_send_reply(404, Timeout)

The define is replacing ID tokes, which are alpha-numeric tokens stand 
alone.


In your case, you try to replace inside a composite value, and the ip 
address is not a stand alone token there - not sure if it supports, but 
you try putting the value in between quotes. If does not work, then you 
have to break down the listen value in listen with ip and then port 
separately.


OK. So if I want to replace a pattern everywhere, inside strings and ID 
tokens, I have to use both (subst and define)?


I will try it,
Klaus

___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] Question about LCR

2011-03-08 Thread Juha Heinanen
Daniel-Constantin Mierla writes:

  The issue I am running into is that in a scenario where
  both my carriers respond with a 5XX, I end up presenting the same call to
  all 4 gateways.  I would like to present the call to one gateway on each
  carrier and not try the same carriers second gateway for the same
  call.

currently only lcr rule can be a stopper rule, i.e., if it matches,
other matching rules are not tried.

you can disable a failing gateway for some number of seconds, which
should reduce unsuccessful attempts.

-- juha

___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users