[OpenSIPS-Users] Problem with load balancer module
Diego Barberio
diego.barberio at redmondsoftware.com
Wed Jan 12 13:02:52 CET 2011
Hi Bogdan,
Have you been able to take a look at the traces I sent?
Thanks
Diego
-----Original Message-----
From: users-bounces at lists.opensips.org
[mailto:users-bounces at lists.opensips.org] On Behalf Of Diego Barberio
Sent: lunes, 10 de enero de 2011 12:51 p.m.
To: users at lists.opensips.org
Subject: [OpenSIPS-Users] Problem with load balancer module
Hi Bogdan,
Thank you for your prompt response. I'm sorry I couldn't send the trace
before but I had some problems with my network.
Also I've change the IP Address schema.
The call is originated from 192.168.2.150 to 192.168.2.165:5060 which is the
opensips address. Currently, the load balancer is configured to redirect the
calls to 192.168.2.165:5061 or 192.168.2.165:5062. In the call I'm sending
the INVITE was redirected to 5061.
The you will see that the ACK is not redirected to the destination.
Thanks
Diego
-----Original Message-----
From: users-bounces at lists.opensips.org
[mailto:users-bounces at lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu
Sent: viernes, 07 de enero de 2011 01:19 p.m.
To: OpenSIPS users mailling list
Subject: Re: [OpenSIPS-Users] Problem with load balancer module
Hi Diego,
Could you post a SIP capture of a complete call (starting with INVITE) from
the opensips LB machine ?
Regards,
Bogdan
Diego Barberio wrote:
> Diego Sebastián Barberio
>
> www.redmondsoftware.com
> +54 11 48153511 (Ext 143)
>
>
> -----Original Message-----
> From: Diego Barberio [mailto:diego.barberio at redmondsoftware.com]
> Sent: jueves, 06 de enero de 2011 03:50 p.m.
> To: 'users at lists.opensips.org'
> Subject: Problem with load balancer module
>
> Hello,
>
> Im testing the Load Balancing module and I have a problem I cant fix
> by myself. The INVITE message is routed correctly to one of the
destinations.
> However the subsequent ACK and the BYE messages are not sent to the
> destinations.
>
> I set up opensips to run only in the udp 5060 port. Then I have two
> identical applications: one running on port 5061 and the other on port
> 5062, the 3 components are running in the same server which has a
> single IP
> address: 192.168.1.195.
> The application is very simple:
> 1. Receives the INVITE, starts streaming the RTP, and sends the OK
> 2. When the ACK is received injects some music in the streaming
> 3. Waits until de BYE is received. Then stops the streaming and
sends
> the OK.
>
> This is the configuration of the load_balancer table:
>
> mysql> select * from load_balancer;
> +----+----------+------------------------+-----------+------------+---
> +----+----------+------------------------+-----------+------------+---
> +----+----------+------------------------+-----------+------------+---
> ----+
> | id | group_id | dst_uri | resources | probe_mode |
> description |
> +----+----------+------------------------+-----------+------------+---
> +----+----------+------------------------+-----------+------------+---
> +----+----------+------------------------+-----------+------------+---
> ----+
> | 1 | 0 | sip:192.168.1.195:5061 | pstn=1 | 0 |
> |
> | 2 | 0 | sip:192.168.1.195:5062 | pstn=1 | 0 |
> |
> +----+----------+------------------------+-----------+------------+---
> +----+----------+------------------------+-----------+------------+---
> +----+----------+------------------------+-----------+------------+---
> ----+
> I've configured only one resource in each application because I'm just
> testing.
>
> Finally, this is the configuration script, which is the one from the
> tutorial on the website:
>
> debug=3
> log_facility=LOG_LOCAL6
>
> fork=yes
> children=4
>
> /* uncomment the following lines to enable debugging */
> debug=6
> fork=no
> #log_stderror=yes
>
> /* uncomment the next line to disable TCP (default on) */
> disable_tcp=yes
>
> port=5060
>
> /* uncomment and configure the following line if you want opensips to
> bind on a specific interface/port/proto (default bind on all
> available) */ listen=udp:192.168.1.195:5060
>
> ####### Modules Section ########
>
> #set module path
> mpath="/usr/local/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"
>
> # ----------------- setting module-specific parameters ---------------
> # ----- mi_fifo params ----- modparam("mi_fifo", "fifo_name",
> "/tmp/opensips_fifo")
>
>
> # ----- rr params -----
> # add value to ;lr param to cope with most of the UAs #modparam("rr",
> "enable_full_lr", 1) # do not append from tag to the RR (no need for
> this script) #modparam("rr", "append_fromtag", 0)
> modparam("rr","enable_double_rr",1)
> modparam("rr","append_fromtag",1)
>
>
> # ----- uri params -----
> modparam("uri", "use_uri_table", 0)
>
> modparam("dialog", "dlg_flag", 13)
> modparam("dialog", "db_mode", 1)
> modparam("dialog", "db_url",
> "mysql://root:Viamonte1621@localhost/opensips")
>
>
> modparam("load_balancer",
> "db_url","mysql://root:Viamonte1621@localhost/opensips")
>
> ####### Routing Logic ########
>
>
> # main request routing logic
> route{
> if (!mf_process_maxfwd_header("3")) {
> sl_send_reply("483","looping");
> exit;
> }
>
>
> if (!has_totag()) {
> xlog("[Redmond] Hast'n to tag\n");
> # initial request
> record_route();
> } else {
> # sequential request -> obey Route indication
> xlog("[Redmond] Has to tag\n");
> 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")) {
> xlog("[Redmond] Not invite\n");
> if ( t_check_trans() )
> t_relay();
> exit;
> #send_reply("405","Method Not Allowed");
> #exit;
> }
>
> load_balance("0","pstn");
>
> # LB function returns negative if no suitable destination (for
> requested resources) is found,
> # or if all destinations are full
> if ($retcode<0) {
> xlog("[Redmond] Service full\n");
> sl_send_reply("500","Service full");
> exit;
> }
>
> xlog("[Redmond] Selected destination is: $du\n");
>
> # send it out
> if (!t_relay()) {
> sl_reply_error();
> }
> }
>
>
>
>
>
> It seems that the route is not saved, because the To tag is sent in
> the ACK and BYE messages, also the logs I've added are written as
> expected for each message. If necesarry I can send a new email with
> the
log attached.
> Please, can you help me to find what's wrong?
>
> Thanks
> Diego
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
--
Bogdan-Andrei Iancu
OpenSIPS Event - expo, conf, social, bootcamp
2 - 4 February 2011, ITExpo, Miami, USA www.voice-system.ro
_______________________________________________
Users mailing list
Users at lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
More information about the Users
mailing list