[OpenSIPS-Users] CDRtool vs CGRATES for Opensips 2.2 +

2017-03-03 Thread Jeff Wilkie
Just pinging the general community on a pros/cons list between these two
systems for rating calls.  I would love to hear feedback on comparisons and
experiences. Finding it hard to see big differences from documentation
other than methods to produce the records and the graphical front end.

Thanks

Jeff Wilkie
___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


Re: [OpenSIPS-Users] preferred OS and version for OpenSIPS?

2017-03-03 Thread Bogdan-Andrei Iancu

Hi Robert,

OpenSIPS is expected to work on any Unix flavor.  Still, we mainly use 
Linux as devel and test OS.


In regards to Control Panel, that's apache and php. If you have issues 
with running in on some OS/version, please fill in a detailed report.


Regards,

Bogdan-Andrei Iancu
  OpenSIPS Founder and Developer
  http://www.opensips-solutions.com

OpenSIPS Summit May 2017 Amsterdam
  http://www.opensips.org/events/Summit-2017Amsterdam.html

On 02/21/2017 04:08 PM, Mundkowsky, Robert wrote:


What is the preferred OS and version for OpenSIPS?

I installed it on newer version Ubtunu, but and it seems to work, but 
the Control Panel does not.  The Control Panel I am guessing expects 
an older version of Debian.


*Robert Mundkowsky*




This e-mail and any files transmitted with it may contain privileged 
or confidential information. It is solely for use by the individual 
for whom it is intended, even if addressed incorrectly. If you 
received this e-mail in error, please notify the sender; do not 
disclose, copy, distribute, or take any action in reliance on the 
contents of this information; and delete it from your system. Any 
other use of this e-mail is prohibited.



Thank you for your compliance.




___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


Re: [OpenSIPS-Users] OPENSIPS-CP 6.2

2017-03-03 Thread Bogdan-Andrei Iancu

Hi Jeff,

Thanks for the report. I pushed the fix on GIT head and 6.2 branch.

Best regards,

Bogdan-Andrei Iancu
  OpenSIPS Founder and Developer
  http://www.opensips-solutions.com

OpenSIPS Summit May 2017 Amsterdam
  http://www.opensips.org/events/Summit-2017Amsterdam.html

On 03/01/2017 01:06 AM, Jeff Wilkie wrote:

Found small error in drouting code for CP

opensips-cp/web/tools/system/drouting/template/carriers.main.php


has a reference to src="../../../images/share/inactive.gif 
and src="../../../images/share/active.gif but neither of these are 
present.  Both of these file extensions should be .png



Thanks


Jeff Wilkie



___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


Re: [OpenSIPS-Users] crashing in 2.2.2

2017-03-03 Thread Richard Robson

More cores

http://pastebin.com/MXW2VBhi
http://pastebin.com/T7JFAP2U
http://pastebin.com/u44aaVpWquit
http://pastebin.com/SFKKcGxE
http://pastebin.com/dwSgMsJi
http://pastebin.com/9HdGLm96

I've put 2.2.3 on the dev box now and will try to replicate on that box, 
but its difficult to replicate the traffic artificially. I'll try to 
replicate the fault on the dev box over the weekend. I cant do it on the 
live gateways because it will affect customer traffic.


Regards,

Richard


On 03/03/2017 11:28, Richard Robson wrote:
I've revisited the gateway failover mechanism I had developed in order 
to re route calls to the next gateway on 500's due to capacity on the 
gateways we are using.


we have 3 gateways from one carrier and one from another. The 3 have 4 
cps and will return a 503 or 500 if we breach this. The single gateway 
from the other carrier has plenty of capacity and should not be a 
problem so we want to catch this . and route to the next gateway.


We are counting the CPS and channel limits and are routing to the next 
gateway if we exceed the limit set, but There are still occasions 
where a 5XX is generated, which results in a rejected call.



We want to stop these rejected calls and therefore want to implement 
the failover mechanism for the 5XX responses. For 6 months we have 
been failing over if we think the counts are to high on any one 
gateway without a problem. But when I implement a failover on a 5XX 
response opensips starts crashing.


It's difficult to generate artificial traffic to mimic the real 
traffic, but I've not had a problem with the script in testing. Last 
night I rolled out the new script but by 09:15 this morning opensips 
started crashing 10 times in 5 minutes. This was as the traffic ramped 
up. I rolled back the script and it restarted OK and has not crashed 
since. Therefore the Failover Mechanism in the script is where the 
crash is happening


Core dump: http://pastebin.com/CqnESCm4

I'll add more dumps later

Regards,

Richard


this is the failure route catching the 5XX

failure_route[dr_fo] {
xlog (" [dr]  Recieved reply to method $rm From: $fd, $fn, 
$ft, $fu, $fU, $si, $sp, To: $ru");

if (t_was_cancelled()) {
xlog("[dr]call cancelled by internal caller");
rtpengine_manage();
do_accounting("db", "cdr|missed");
exit;
}

if ( t_check_status("[54]03")) {
route(relay_failover);
}
if ( t_check_status("500")) {
route(relay_failover);
}

do_accounting("db", "cdr|missed");
rtpengine_manage();
exit;
}

This is the route taken on the failure


route[relay_failover]{

if (use_next_gw()) {
xlog("[relay_failover-route] Selected Gateway is $rd");
$avp(trunkratelimit)=$(avp(attrs){s.select,0,:});
$avp(trunkchannellimit)=$(avp(attrs){s.select,1,:});

### check channel limit ##
get_profile_size("outbound","$rd","$var(size)");
xlog("[relay_failover-route] Selected Gateway is $rd 
var(size) = $var(size)");
xlog("[relay_failover-route] Selected Gateway is $rd 
avp(trunkcalllimit) = $avp(trunkchannellimit)");
xlog("[relay_failover-route] Selected Gateway is $rd  
result = ( $var(size) > $avp(trunkchannellimit))");
if ( $(var(size){s.int}) > 
$(avp(trunkchannellimit){s.int})) {
xlog("[relay_failover-route] Trunk $rd 
exceeded $avp(trunkchannellimit) concurrent calls $var(size)");

route(relay_failover);
}
} else {
   send_reply("503", "Gateways Exhusted");
   exit;
}

# We need to check Rate Limiting ###
if (!rl_check("$rd", "$(avp(trunkratelimit){s.int})", 
"TAILDROP")) { # Check Rate limit $avp needs changing
rl_dec_count("$rd"); # decrement the counter since 
we've not "used" one
xlog("[ratelimiter-route] [Max CPS: 
$(avp(trunkratelimit){s.int}) Current CPS: $rl_count($rd)] Call to: 
$rU from: $fU CPS exceeded, delaying");

$avp(initial_time)=($Ts*1000)+($Tsm/1000);
async(usleep("20"),relay_failover_delay);
xlog ("Should not get here after async requst");
} else {
xlog ("[relay_outbound-route] [Max CPS: 
$avp(trunkratelimit) Current CPS: $rl_count($rd)] Call to: $rU from: 
$fU not ratelimited");

}

t_on_failure("dr_fo");
do_accounting("db", "cdr|missed");
rtpengine_manage();
if (!t_relay()) {
xlog("[relay-route] ERROR: Unable to relay");
send_reply("500","Internal Error");
exit;
}
}







--
Richard Robson
Greenlight Support
01382 843843
supp...@greenlightcrm.com



[OpenSIPS-Users] crashing in 2.2.2

2017-03-03 Thread Richard Robson
I've revisited the gateway failover mechanism I had developed in order 
to re route calls to the next gateway on 500's due to capacity on the 
gateways we are using.


we have 3 gateways from one carrier and one from another. The 3 have 4 
cps and will return a 503 or 500 if we breach this. The single gateway 
from the other carrier has plenty of capacity and should not be a 
problem so we want to catch this . and route to the next gateway.


We are counting the CPS and channel limits and are routing to the next 
gateway if we exceed the limit set, but There are still occasions where 
a 5XX is generated, which results in a rejected call.



We want to stop these rejected calls and therefore want to implement the 
failover mechanism for the 5XX responses. For 6 months we have been 
failing over if we think the counts are to high on any one gateway 
without a problem. But when I implement a failover on a 5XX response 
opensips starts crashing.


It's difficult to generate artificial traffic to mimic the real traffic, 
but I've not had a problem with the script in testing. Last night I 
rolled out the new script but by 09:15 this morning opensips started 
crashing 10 times in 5 minutes. This was as the traffic ramped up. I 
rolled back the script and it restarted OK and has not crashed since. 
Therefore the Failover Mechanism in the script is where the crash is 
happening


Core dump: http://pastebin.com/CqnESCm4

I'll add more dumps later

Regards,

Richard


this is the failure route catching the 5XX

failure_route[dr_fo] {
xlog (" [dr]  Recieved reply to method $rm From: $fd, $fn, $ft, 
$fu, $fU, $si, $sp, To: $ru");

if (t_was_cancelled()) {
xlog("[dr]call cancelled by internal caller");
rtpengine_manage();
do_accounting("db", "cdr|missed");
exit;
}

if ( t_check_status("[54]03")) {
route(relay_failover);
}
if ( t_check_status("500")) {
route(relay_failover);
}

do_accounting("db", "cdr|missed");
rtpengine_manage();
exit;
}

This is the route taken on the failure


route[relay_failover]{

if (use_next_gw()) {
xlog("[relay_failover-route] Selected Gateway is $rd");
$avp(trunkratelimit)=$(avp(attrs){s.select,0,:});
$avp(trunkchannellimit)=$(avp(attrs){s.select,1,:});

### check channel limit ##
get_profile_size("outbound","$rd","$var(size)");
xlog("[relay_failover-route] Selected Gateway is $rd 
var(size) = $var(size)");
xlog("[relay_failover-route] Selected Gateway is $rd 
avp(trunkcalllimit) = $avp(trunkchannellimit)");
xlog("[relay_failover-route] Selected Gateway is $rd  
result = ( $var(size) > $avp(trunkchannellimit))");
if ( $(var(size){s.int}) > 
$(avp(trunkchannellimit){s.int})) {
xlog("[relay_failover-route] Trunk $rd exceeded 
$avp(trunkchannellimit) concurrent calls $var(size)");

route(relay_failover);
}
} else {
   send_reply("503", "Gateways Exhusted");
   exit;
}

# We need to check Rate Limiting ###
if (!rl_check("$rd", "$(avp(trunkratelimit){s.int})", 
"TAILDROP")) { # Check Rate limit $avp needs changing
rl_dec_count("$rd"); # decrement the counter since 
we've not "used" one
xlog("[ratelimiter-route] [Max CPS: 
$(avp(trunkratelimit){s.int}) Current CPS: $rl_count($rd)] Call to: $rU 
from: $fU CPS exceeded, delaying");

$avp(initial_time)=($Ts*1000)+($Tsm/1000);
async(usleep("20"),relay_failover_delay);
xlog ("Should not get here after async requst");
} else {
xlog ("[relay_outbound-route] [Max CPS: 
$avp(trunkratelimit) Current CPS: $rl_count($rd)] Call to: $rU from: $fU 
not ratelimited");

}

t_on_failure("dr_fo");
do_accounting("db", "cdr|missed");
rtpengine_manage();
if (!t_relay()) {
xlog("[relay-route] ERROR: Unable to relay");
send_reply("500","Internal Error");
exit;
}
}




--
Richard Robson
Greenlight Support
01382 843843
supp...@greenlightcrm.com


___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users