[SR-Users] #!define and #!subst problem
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
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
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
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
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
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