[OpenSIPS-Users] basic load balancer setup
    Joshua Nankin 
    jnankin at gmail.com
       
    Tue Mar 13 21:00:19 CET 2012
    
    
  
Hello,
Trying to use OpenSIPS as both a load balancer for incoming calls and
as an outbound proxy to my carrier.  I have been unsuccessful to place
outgoing or incoming calls, and I think I just need some help with the
configuration.  Just for testing, I have one Asterisk box behind
OpenSIPS and the load balancer table on OpenSIPS looks like this:
+----+----------+-------------------+-----------+------------+-------------+
| id | group_id | dst_uri           | resources | probe_mode | description |
+----+----------+-------------------+-----------+------------+-------------+
|  1 |        1 | sip:10.36.115.119 | fax=300   |          0 | tester      |
+----+----------+-------------------+-----------+------------+-------------+
The dst_ur is the internal IP of my asterisk box.  I'm using this for
fax, so I have set the resources field to 300 channels of "fax".   On
my asterisk box, I've added "outboundproxy=23.21.170.154", as the 23.*
IP is the external IP of the opensips box.  Below is my simple
opensips.cfg that I've adapted from the load balancing tutorial.  Any
help would be much appreciated.  Additionally, for debugging purposes,
I've opened all UDP and TCP ports.  Still not able to connect.
debug=6
memlog=1
fork=yes
children=2
log_stderror=yes
log_facility=LOG_LOCAL0
disable_tcp=yes
disable_dns_blacklist = yes
auto_aliases=no
check_via=no
dns=off
rev_dns=off
port=5060
mpath="/usr/lib/opensips/modules/"
loadmodule "maxfwd.so"
loadmodule "sl.so"
loadmodule "db_mysql.so"
loadmodule "tm.so"
loadmodule "uri.so"
loadmodule "rr.so"
loadmodule "dialog.so"
loadmodule "mi_fifo.so"
loadmodule "signaling.so"
loadmodule "textops.so"
loadmodule "load_balancer.so"
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
modparam("mi_fifo", "fifo_mode",0666)
modparam("dialog", "db_mode", 1)
modparam("dialog", "db_url", "mysql://root:opensips@localhost/opensips")
modparam("rr","enable_double_rr",1)
modparam("rr","append_fromtag",1)
modparam("load_balancer", "db_url","mysql://root:opensips@localhost/opensips")
route{
	if (!mf_process_maxfwd_header("3")) {
		sl_send_reply("483","looping");
		exit;
	}
	if (!has_totag()) {
                # initial request
		record_route();
	} else {
		# sequential request -> obey Route indication
		loose_route();
                t_relay();
                exit;
        }
        # handle cancel and re-transmissions
	if ( is_method("CANCEL") ) {
		if ( t_check_trans() )
			t_relay();
		exit;
	}
        # from now on we have only the initial requests
        if (!is_method("INVITE")) {
                send_reply("405","Method Not Allowed");
                exit;
        }
        # detect resources and do balancing
       load_balance("1","fax");
        # LB function returns negative if no suitable destination (for
requested resources) is found,
        # or if all destinations are full
        if ($retcode<0) {
             sl_send_reply("500","Service full");
             exit;
        }
	xlog("Selected destination is: $du\n");
        # send it out
	if (!t_relay()) {
		sl_reply_error();
	}
}
    
    
More information about the Users
mailing list