[OpenSIPS-Users] opensips 1.6.4 load balancing performance
Iulian Macare
iulian.macare at gmail.com
Tue Mar 15 11:37:04 CET 2011
1) Yes , only for the initial request
Before load balancing I have
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}
if (has_totag()) {
if (loose_route()) {
if (is_method("BYE")) {
setflag(1); # do accounting ...
setflag(3); # ... even if the transaction
fails
} else if (is_method("INVITE")) {
record_route();
}
route(1);
} else {
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
t_relay();
exit;
} else {
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
}
#initial requests
# CANCEL processing
if (is_method("CANCEL"))
{
if (t_check_trans())
t_relay();
exit;
}
t_check_trans();
if (!is_method("INVITE")) {
send_reply("405","Method Not Allowed");
exit;
}
.....
if (uri=~"^sip:0[1-9][0-9]*@") {
load_balance("1","pstn");
xlog("sending call with callid $ci and ruri $ru to $du\n");
t_relay();
exit;
}
2) Yes, exactly . I don't see it being sent out....
On Tue, Mar 15, 2011 at 12:10 PM, Bogdan-Andrei Iancu
<bogdan at opensips.org>wrote:
> Hi Iulian,
>
> Regarding your first issue, with the load:
>
> 1) I suppose you do the lb stuff only for the initial request right ?
>
> 2) you say you see the xlog() for all the received calls, so all received
> calls pass the lb function...but you do not see all calls being sent out,
> right ?
>
>
>
>
> Iulian Macare wrote:
>
>> Hello
>>
>>
>> I have installed OpenSips 1.6.4 on CentOS 5.5 32bit with load balancing &
>> mysql support ; I want to balance calls to 2 asterisk servers . I am sending
>> traffic to opensips from 1 x gnudialer & 1 x vicidial ( so from predictive
>> dialers ). Situation is like this:
>>
>>
>>
>> +----+----------+--------------------------+-----------+------------+-------------+
>> | id | group_id | dst_uri | resources | probe_mode |
>> description |
>>
>> +----+----------+--------------------------+-----------+------------+-------------+
>> | 1 | 1 | sip:192.168.254.241:5060 <http://192.168.254.241:5060>
>> | pstn=300 | 0 | |
>> | 2 | 1 | sip:192.168.254.242:5060 <http://192.168.254.242:5060>
>> | pstn=300 | 0 | |
>>
>>
>> +----+----------+--------------------------+-----------+------------+-------------+
>>
>> 600 channels in total , and I send around 500 channels ; OpenSips drops a
>> lot of calls; By drop I mean a call that is not sent to one of those 2
>> asterisk servers that I have.
>>
>> The code for balancing in this situation is:
>>
>> if (uri=~"^sip:0[1-9][0-9]*@") {
>> load_balance("1","pstn");
>> xlog("sending call $ru to $du\n");
>> t_relay();
>> exit;
>> }
>>
>> ! An important thing to say is that in /var/log/messages I see the
>> specific number that is sent to 192.168.254.241 for example ; So the
>> parameter xlog("sending call $ru to $du\n"); works ; The problem is that in
>> logs on 192.168.254.241 that number never arrives in asterisk logs ; In logs
>> of vicidial & gnudialer I see it like congestion.
>>
>> If I do something like this:
>>
>>
>> +----+----------+---------------------+-----------+------------+-------------+
>> | id | group_id | dst_uri | resources | probe_mode |
>> description |
>>
>> +----+----------+---------------------+-----------+------------+-------------+
>> | 1 | 1 | sip:192.168.254.241 | pstn=150 | 0 |
>> |
>> | 2 | 2 | sip:192.168.254.241 | pstn=150 | 0 |
>> |
>> | 3 | 1 | sip:192.168.254.242 | pstn=150 | 0 |
>> |
>> | 4 | 2 | sip:192.168.254.242 | pstn=150 | 0 |
>> |
>>
>> And I split opensips balancing in 2
>>
>>
>> if(src_ip==192.168.3.10 )
>> {
>> load_balance("1","pstn");
>> xlog("sending call to $du\n");
>> t_relay();
>> exit;
>> };
>>
>> if(src_ip==192.168.3.11 )
>> {
>> load_balance("2","pstn");
>> xlog("sending call to $du\n");
>> t_relay();
>> exit;
>> };
>>
>>
>> and by doing this I get the same numbers of channels on opensips ( around
>> 500 channels ) but I am splitting in 2 groups of load balancing; It can
>> process all the calls.
>>
>> Another question that I saw is that when I make a single call to opensips
>> and I involve load balancing in /var/log/messages I get 2 times the same
>> message .. just like it send 2 time to asterisk server the call .. but on
>> asterisk I receive only one time.
>>
>> Mar 10 14:58:47 opensips /usr/local/sbin/opensips[27611]: sending call to
>> sip:192.168.254.241
>> Mar 10 14:58:47 opensips /usr/local/sbin/opensips[27611]: sending call to
>> sip:192.168.254.241
>>
>>
>> Isn't load balancing fast enough the process the calls made by predictive
>> dialers, when over 300 channels is sent .. ? Or I have some mistakes made .
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>
>
> --
> Bogdan-Andrei Iancu
> OpenSIPS eBootcamp - 28th February 2011
> OpenSIPS solutions and "know-how"
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20110315/100e7dd0/attachment.htm>
More information about the Users
mailing list