[OpenSIPS-Users] opensips 1.6.4 load balancing performance

Iulian Macare iulian.macare at gmail.com
Fri Mar 11 09:32:15 CET 2011


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 | pstn=300  |          0
|             |
|  2 |        1 | sip: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 .
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20110311/61275290/attachment.htm>


More information about the Users mailing list