Hi Diego,

The bug seams to be in your callee device. Take a look at the 200 OK it sends:

U 192.168.2.165:5061 -> 192.168.2.165:5060
SIP/2.0 200 OK..From: "Your Long Name"<sip:[email protected]:5060>;tag=A46E9878A6B36612423768382DD6C758..To: <sip:[email protected]>;tag=843e7f0-a502a8c0-13c5-50022-1110-60a48c56-1110..Call-ID: [email protected] .150..CSeq: 1 INVITE..Via: SIP/2.0/UDP 192.168.2.165;branch=z9hG4bK7bcf.2d3c8236.0..Via: SIP/2.0/UDP 192.168.2.150:5060;received=192.168.2.150;rport=5060;branch=z9hG4bKC115ED4230E704ED2956D13FC3999153..Record-Route: <sip:192.168.2.165;lr;ftag=A46E98 78A6B36612423768382DD6C758;did=08c.697623b5>..Contact: <sip:[email protected]>..Allow: INVITE, CANCEL, ACK, BYE, OPTIONS, INFO..Content-Type: application/sdp..Content-Length: 210....v=0..o=RBTAlerting 2844730 0 IN IP4 192.168.2.165..s=INTEL_ SIP_CCLIB..i=session information..c=IN IP4 192.168.2.165..t=0 0..m=audio 49152 RTP/AVP 8 101..a=rtpmap:8 PCMA/8000..a=rtpmap:101 telephone-event/8000..
#

The 200 OK is sent from 192.168.2.165:5061, but in contact it places sip:[email protected] -> the port is missing, so the sequential requests are going to the wrong destination (to sip:[email protected] which is actually the LB ,not the callee)

Regards,
Bogdan

Diego Barberio wrote:
Hi Bogdan,

Have you been able to take a look at the traces I sent?

Thanks
Diego

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Diego Barberio
Sent: lunes, 10 de enero de 2011 12:51 p.m.
To: [email protected]
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: [email protected]
[mailto:[email protected]] 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:[email protected]]
Sent: jueves, 06 de enero de 2011 03:50 p.m.
To: '[email protected]'
Subject: Problem with load balancer module

Hello,

I’m testing the Load Balancing module and I have a problem I can’t 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:viamonte1...@localhost/opensips")


modparam("load_balancer",
"db_url","mysql://root:viamonte1...@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
[email protected]
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
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[email protected]
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
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to