Re: [OpenSIPS-Users] Load Balancer Issue
Nilanjan, The caller script is broken - in ACK, is should be ROUTE hdrs where you have the RECORD-ROUTE ones :) .ACK should look like: U 2012/11/01 11:19:02.006514 X.X.X.23:5080 - X.X.X.206:5060 ACK sip:X.X.X.5:5070;transport=UDP SIP/2.0. Route: sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a,sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-5. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 1 ACK. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 70. Subject: Performance Test. Content-Length: 0. I guess it is an err in your sipp scenario. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com On 11/09/2012 07:24 PM, Nilanjan Banerjee wrote: Hi Bogdan, Thanks for your reply. The answer to both your questions is yes. Sample of OK and ACK at the caller as follows: # U 2012/11/01 11:19:02.006375 X.X.X.206:5060 - X.X.X.23:5080 SIP/2.0 200 OK. Record-Route: sip:X.X.X.8;lr, sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-0. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 1 INVITE. Contact: sip:X.X.X.5:5070;transport=UDP. Content-Type: application/sdp. Content-Length: 137. . v=0. o=user1 53655765 2353687637 IN IP4 X.X.X.5. s=-. c=IN IP4 X.X.X.5. t=0 0. m=audio 6000 RTP/AVP 0. a=rtpmap:0 PCMU/8000. # U 2012/11/01 11:19:02.006514 X.X.X.23:5080 - X.X.X.206:5060 ACK sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a,sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-5. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 1 ACK. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 70. Subject: Performance Test. Content-Length: 0. . Thanks, Nilanjan. On Fri, Nov 9, 2012 at 10:29 PM, Bogdan-Andrei Iancu bog...@opensips.org mailto:bog...@opensips.org wrote: Hi Nilanjan, Check in the trace if : 1) the 200 OK getting back to the caller has 2 RR headers (one from Proxy and one from LB). 2) the ACK from caller (before LB) has 2 Route headers, one pointing to LB, next to Proxy. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com On 11/09/2012 05:01 PM, Nilanjan Banerjee wrote: Hi Bogdan, Thanks a lot for your suggestion and sorry for the delay in getting back with this...I tried the following configuration as you have suggested for the Load Balancer and the Proxy: __ Load Balancer: __ 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; } # detect resources and do load balancing load_balance(1,sc); # LB function returns negative if no suitable destination (for requested resources) is found, # or if all destinations are full if ($retcode0) { sl_send_reply(500,Service full); exit; } xlog(Selected destination is: $du\n); # send it out if (!t_relay()) { sl_reply_error(); } } __ Proxy __ route{ if (!has_totag()) { # initial request record_route(); } else { # sequential request - obey Route indication loose_route(); } if (!t_relay()) { # xlog(L_ERR,sl_reply_error\n); sl_reply_error(); } } However, I am still getting the same error - basically the ACK and the BYE messages are skipping the Proxy and the response to the BYE is sent to the Proxy. Here are the sample ACK and BYE for the following setup I am using: X.X.X.23:5080 -- X.X.X.206:5060 -- X.X.X.8:5060 -- X.X.X.5:5070 (sipp UAC) -- (Load Balancer) -- (Proxy) -- (sipp UAS) # U 2012/11/01 11:19:22.901990 X.X.X.206:5060 - X.X.X.5:5070 ACK sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag005;did=9d.087b203,sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.206;branch=z9hG4bK0112.20fe162.2. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-5-5. From: sipp
Re: [OpenSIPS-Users] Load Balancer Issue
Hi Bogdan, You were spot on. Fixed the ROUTE headers for ACK and BYE in the sipp scenario and everything just worked perfectly. Thanks a lot for bearing with me with your continued support. Much appreciate it. Nilanjan. On Fri, Nov 9, 2012 at 11:07 PM, Bogdan-Andrei Iancu bog...@opensips.orgwrote: ** Nilanjan, The caller script is broken - in ACK, is should be ROUTE hdrs where you have the RECORD-ROUTE ones :) .ACK should look like: U 2012/11/01 11:19:02.006514 X.X.X.23:5080 - X.X.X.206:5060 ACK sip:X.X.X.5:5070;transport=UDP SIP/2.0. Route: sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a, sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-5. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 1 ACK. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 70. Subject: Performance Test. Content-Length: 0. I guess it is an err in your sipp scenario. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developerhttp://www.opensips-solutions.com On 11/09/2012 07:24 PM, Nilanjan Banerjee wrote: Hi Bogdan, Thanks for your reply. The answer to both your questions is yes. Sample of OK and ACK at the caller as follows: # U 2012/11/01 11:19:02.006375 X.X.X.206:5060 - X.X.X.23:5080 SIP/2.0 200 OK. Record-Route: sip:X.X.X.8;lr, sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-0. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 1 INVITE. Contact: sip:X.X.X.5:5070;transport=UDP. Content-Type: application/sdp. Content-Length: 137. . v=0. o=user1 53655765 2353687637 IN IP4 X.X.X.5. s=-. c=IN IP4 X.X.X.5. t=0 0. m=audio 6000 RTP/AVP 0. a=rtpmap:0 PCMU/8000. # U 2012/11/01 11:19:02.006514 X.X.X.23:5080 - X.X.X.206:5060 ACK sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a, sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-5. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 1 ACK. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 70. Subject: Performance Test. Content-Length: 0. . Thanks, Nilanjan. On Fri, Nov 9, 2012 at 10:29 PM, Bogdan-Andrei Iancu bog...@opensips.orgwrote: Hi Nilanjan, Check in the trace if : 1) the 200 OK getting back to the caller has 2 RR headers (one from Proxy and one from LB). 2) the ACK from caller (before LB) has 2 Route headers, one pointing to LB, next to Proxy. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developerhttp://www.opensips-solutions.com On 11/09/2012 05:01 PM, Nilanjan Banerjee wrote: Hi Bogdan, Thanks a lot for your suggestion and sorry for the delay in getting back with this...I tried the following configuration as you have suggested for the Load Balancer and the Proxy: __ Load Balancer: __ 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; } # detect resources and do load balancing load_balance(1,sc); # LB function returns negative if no suitable destination (for requested resources) is found, # or if all destinations are full if ($retcode0) { sl_send_reply(500,Service full); exit; } xlog(Selected destination is: $du\n); # send it out if (!t_relay()) { sl_reply_error(); } } __ Proxy __ route{ if (!has_totag()) { # initial request record_route(); } else { # sequential request - obey Route indication loose_route(); } if (!t_relay()) { # xlog(L_ERR,sl_reply_error\n); sl_reply_error(); } } However, I am still getting the same error - basically the ACK and the BYE messages are skipping the Proxy and the response to the BYE is sent to the Proxy. Here are the sample ACK and BYE for the following setup I am using: X.X.X.23:5080 -- X.X.X.206:5060 -- X.X.X.8:5060 -- X.X.X.5:5070 (sipp UAC) -- (Load Balancer) -- (Proxy) -- (sipp UAS) # U 2012/11/01 11:19:22.901990 X.X.X.206:5060 - X.X.X.5:5070 ACK sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag005;did=9d.087b203, sip:X.X.X.8;lr. Via: SIP/2.0/UDP
Re: [OpenSIPS-Users] Load Balancer Issue
Hi Bogdan, Thanks a lot for your suggestion and sorry for the delay in getting back with this...I tried the following configuration as you have suggested for the Load Balancer and the Proxy: __ Load Balancer: __ 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; } # detect resources and do load balancing load_balance(1,sc); # LB function returns negative if no suitable destination (for requested resources) is found, # or if all destinations are full if ($retcode0) { sl_send_reply(500,Service full); exit; } xlog(Selected destination is: $du\n); # send it out if (!t_relay()) { sl_reply_error(); } } __ Proxy __ route{ if (!has_totag()) { # initial request record_route(); } else { # sequential request - obey Route indication loose_route(); } if (!t_relay()) { # xlog(L_ERR,sl_reply_error\n); sl_reply_error(); } } However, I am still getting the same error - basically the ACK and the BYE messages are skipping the Proxy and the response to the BYE is sent to the Proxy. Here are the sample ACK and BYE for the following setup I am using: X.X.X.23:5080 -- X.X.X.206:5060 -- X.X.X.8:5060 -- X.X.X.5:5070 (sipp UAC) -- (Load Balancer) -- (Proxy) -- (sipp UAS) # U 2012/11/01 11:19:22.901990 X.X.X.206:5060 - X.X.X.5:5070 ACK sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag005;did=9d.087b203,sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.206;branch=z9hG4bK0112.20fe162.2. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-5-5. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag005. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag015. Call-ID: 5-31168@X.X.X.23. CSeq: 1 ACK. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 69. Subject: Performance Test. Content-Length: 0. . # U 2012/11/01 11:19:22.934118 X.X.X.23:5080 - X.X.X.206:5060 BYE sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a,sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-7. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 2 BYE. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 70. Subject: Performance Test. Content-Length: 0. . Looks like the loose routing for the messages after the initial requests is not happening properly according to the Record-Route header. Not sure, if I am doing things right in the client side while introducing the Record-Route header - hence attaching the modified sipp uac and uas I am using. Would greatly appreciate your time and help if you could please throw some light into this matter. Thanks, Nil. On Thu, Oct 25, 2012 at 7:30 PM, Bogdan-Andrei Iancu bog...@opensips.orgwrote: ** Hi Nil, Seems the problem is in the proxy, where you do not do RR at all. Try Proxy: route{ if (!has_totag()) { # initial request record_route(); } else { # sequential request - obey Route indication loose_route(); } if (!t_relay()) { # xlog(L_ERR,sl_reply_error\n); sl_reply_error(); } } Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developerhttp://www.opensips-solutions.com On 10/22/2012 02:25 PM, Nilanjan Banerjee wrote: Thanks Bogdan for taking time to respond to my post. I think you have guessed it right, I am using the sample routing script given in the Load Balancer (LB) tutorial and that is most likely sending the ACK and BYE messages directly to Client 2 bypassing the Proxy. The routing code snippets I am using at the LB and the Proxy are shown below. Could you please tell me what's going wrong over here? I am using record route support at both the clients. Alternatively if you could please tell me what should go in the routing blocks of the LB and the Proxy so that all the messages go through the LB and the Proxy then that will be of immense help too. Regards, Nil. Load Balancer: route{ if (!mf_process_maxfwd_header(3)) { sl_send_reply(483,looping); exit; } if (!has_totag()) { # initial request record_route(); } else { # sequential
Re: [OpenSIPS-Users] Load Balancer Issue
Hi Nilanjan, Check in the trace if : 1) the 200 OK getting back to the caller has 2 RR headers (one from Proxy and one from LB). 2) the ACK from caller (before LB) has 2 Route headers, one pointing to LB, next to Proxy. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com On 11/09/2012 05:01 PM, Nilanjan Banerjee wrote: Hi Bogdan, Thanks a lot for your suggestion and sorry for the delay in getting back with this...I tried the following configuration as you have suggested for the Load Balancer and the Proxy: __ Load Balancer: __ 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; } # detect resources and do load balancing load_balance(1,sc); # LB function returns negative if no suitable destination (for requested resources) is found, # or if all destinations are full if ($retcode0) { sl_send_reply(500,Service full); exit; } xlog(Selected destination is: $du\n); # send it out if (!t_relay()) { sl_reply_error(); } } __ Proxy __ route{ if (!has_totag()) { # initial request record_route(); } else { # sequential request - obey Route indication loose_route(); } if (!t_relay()) { # xlog(L_ERR,sl_reply_error\n); sl_reply_error(); } } However, I am still getting the same error - basically the ACK and the BYE messages are skipping the Proxy and the response to the BYE is sent to the Proxy. Here are the sample ACK and BYE for the following setup I am using: X.X.X.23:5080 -- X.X.X.206:5060 -- X.X.X.8:5060 -- X.X.X.5:5070 (sipp UAC) -- (Load Balancer) -- (Proxy) -- (sipp UAS) # U 2012/11/01 11:19:22.901990 X.X.X.206:5060 - X.X.X.5:5070 ACK sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag005;did=9d.087b203,sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.206;branch=z9hG4bK0112.20fe162.2. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-5-5. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag005. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag015. Call-ID: 5-31168@X.X.X.23. CSeq: 1 ACK. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 69. Subject: Performance Test. Content-Length: 0. . # U 2012/11/01 11:19:22.934118 X.X.X.23:5080 - X.X.X.206:5060 BYE sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a,sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-7. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 2 BYE. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 70. Subject: Performance Test. Content-Length: 0. . Looks like the loose routing for the messages after the initial requests is not happening properly according to the Record-Route header. Not sure, if I am doing things right in the client side while introducing the Record-Route header - hence attaching the modified sipp uac and uas I am using. Would greatly appreciate your time and help if you could please throw some light into this matter. Thanks, Nil. On Thu, Oct 25, 2012 at 7:30 PM, Bogdan-Andrei Iancu bog...@opensips.org mailto:bog...@opensips.org wrote: Hi Nil, Seems the problem is in the proxy, where you do not do RR at all. Try Proxy: route{ if (!has_totag()) { # initial request record_route(); } else { # sequential request - obey Route indication loose_route(); } if (!t_relay()) { # xlog(L_ERR,sl_reply_error\n); sl_reply_error(); } } Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com On 10/22/2012 02:25 PM, Nilanjan Banerjee wrote: Thanks Bogdan for taking time to respond to my post. I think you have guessed it right, I am using the sample routing script given in the Load Balancer (LB) tutorial and that is most likely sending the ACK and BYE messages directly to Client 2 bypassing the Proxy. The routing code snippets I am using at the LB and the Proxy are shown below. Could you please tell me what's going wrong over here? I am using record route support at both the clients. Alternatively if you could
Re: [OpenSIPS-Users] Load Balancer Issue
Hi Bogdan, Thanks for your reply. The answer to both your questions is yes. Sample of OK and ACK at the caller as follows: # U 2012/11/01 11:19:02.006375 X.X.X.206:5060 - X.X.X.23:5080 SIP/2.0 200 OK. Record-Route: sip:X.X.X.8;lr, sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-0. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 1 INVITE. Contact: sip:X.X.X.5:5070;transport=UDP. Content-Type: application/sdp. Content-Length: 137. . v=0. o=user1 53655765 2353687637 IN IP4 X.X.X.5. s=-. c=IN IP4 X.X.X.5. t=0 0. m=audio 6000 RTP/AVP 0. a=rtpmap:0 PCMU/8000. # U 2012/11/01 11:19:02.006514 X.X.X.23:5080 - X.X.X.206:5060 ACK sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a,sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-5. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 1 ACK. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 70. Subject: Performance Test. Content-Length: 0. . Thanks, Nilanjan. On Fri, Nov 9, 2012 at 10:29 PM, Bogdan-Andrei Iancu bog...@opensips.orgwrote: ** Hi Nilanjan, Check in the trace if : 1) the 200 OK getting back to the caller has 2 RR headers (one from Proxy and one from LB). 2) the ACK from caller (before LB) has 2 Route headers, one pointing to LB, next to Proxy. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developerhttp://www.opensips-solutions.com On 11/09/2012 05:01 PM, Nilanjan Banerjee wrote: Hi Bogdan, Thanks a lot for your suggestion and sorry for the delay in getting back with this...I tried the following configuration as you have suggested for the Load Balancer and the Proxy: __ Load Balancer: __ 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; } # detect resources and do load balancing load_balance(1,sc); # LB function returns negative if no suitable destination (for requested resources) is found, # or if all destinations are full if ($retcode0) { sl_send_reply(500,Service full); exit; } xlog(Selected destination is: $du\n); # send it out if (!t_relay()) { sl_reply_error(); } } __ Proxy __ route{ if (!has_totag()) { # initial request record_route(); } else { # sequential request - obey Route indication loose_route(); } if (!t_relay()) { # xlog(L_ERR,sl_reply_error\n); sl_reply_error(); } } However, I am still getting the same error - basically the ACK and the BYE messages are skipping the Proxy and the response to the BYE is sent to the Proxy. Here are the sample ACK and BYE for the following setup I am using: X.X.X.23:5080 -- X.X.X.206:5060 -- X.X.X.8:5060 -- X.X.X.5:5070 (sipp UAC) -- (Load Balancer) -- (Proxy) -- (sipp UAS) # U 2012/11/01 11:19:22.901990 X.X.X.206:5060 - X.X.X.5:5070 ACK sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag005;did=9d.087b203, sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.206;branch=z9hG4bK0112.20fe162.2. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-5-5. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag005. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag015. Call-ID: 5-31168@X.X.X.23. CSeq: 1 ACK. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 69. Subject: Performance Test. Content-Length: 0. . # U 2012/11/01 11:19:22.934118 X.X.X.23:5080 - X.X.X.206:5060 BYE sip:X.X.X.5:5070;transport=UDP SIP/2.0. Record-Route: sip:X.X.X.206;lr;ftag=31168SIPpTag001;did=0ec.de85e9a, sip:X.X.X.8;lr. Via: SIP/2.0/UDP X.X.X.23:5080;branch=z9hG4bK-31168-1-7. From: sipp sip:sipp@X.X.X.23:5080;tag=31168SIPpTag001. To: sut sip:service@X.X.X.5:5070;tag=30500SIPpTag011. Call-ID: 1-31168@X.X.X.23. CSeq: 2 BYE. Contact: sip:sipp@X.X.X.23:5080. Max-Forwards: 70. Subject: Performance Test. Content-Length: 0. . Looks like the loose routing for the messages after the initial requests is not happening properly according to the Record-Route header. Not sure, if I am doing things right in the client side while introducing the Record-Route header - hence attaching the modified sipp uac and uas I am using. Would greatly appreciate your
Re: [OpenSIPS-Users] Load Balancer Issue
Hi Nil, Seems the problem is in the proxy, where you do not do RR at all. Try Proxy: route{ if (!has_totag()) { # initial request record_route(); } else { # sequential request - obey Route indication loose_route(); } if (!t_relay()) { # xlog(L_ERR,sl_reply_error\n); sl_reply_error(); } } Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com On 10/22/2012 02:25 PM, Nilanjan Banerjee wrote: Thanks Bogdan for taking time to respond to my post. I think you have guessed it right, I am using the sample routing script given in the Load Balancer (LB) tutorial and that is most likely sending the ACK and BYE messages directly to Client 2 bypassing the Proxy. The routing code snippets I am using at the LB and the Proxy are shown below. Could you please tell me what's going wrong over here? I am using record route support at both the clients. Alternatively if you could please tell me what should go in the routing blocks of the LB and the Proxy so that all the messages go through the LB and the Proxy then that will be of immense help too. Regards, Nil. Load Balancer: 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; } # detect resources and do balancing load_balance(1,sc); # LB function returns negative if no suitable destination (for requested resources) is found, # or if all destinations are full if ($retcode0) { sl_send_reply(500,Service full); exit; } xlog(Selected destination is: $du\n); # send it out if (!t_relay()) { sl_reply_error(); } } Proxy: route{ record_route(); if (!t_relay()) { # xlog(L_ERR,sl_reply_error\n); sl_reply_error(); } } On Sun, Oct 21, 2012 at 7:39 PM, Bogdan-Andrei Iancu bog...@opensips.org mailto:bog...@opensips.org wrote: Hi Nil, I wild guess is you are not correctly do loose_route on the LB, so instead of following the Route (to OpenSIPS Proxy), it goes directly to end destination in RURI (Client 2). Of course, I assume that all parties (LB + Proxy) do record_route() for the call, right ? Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com On 10/21/2012 10:09 AM, Nilanjan Banerjee wrote: Hello, I am trying to build the following setup using OpenSIPS load balancer and the proxy functionality: Client 1 (sipp) OpenSIPS Load Balancer OpenSIPS Proxy Client 2 (sipp) At the client ends I am using the following commands: Client 1: sipp -sn uac -rsa [Load Balancer Address] [Client 2 Address] Client 2: sipp -sn uas The Load Balancer is configured with a destination as the OpenSIPS Proxy and the Proxy is configured to simply forward the SIP messages based on IP address (using only forward(); in the routing block). Now everything (INVITE, OK and ACK messages) works fine except the BYE messages that are getting forwarded by the Load Balancer directly to Client 2 unlike the INVITE, OK and ACK messages that traverse the Proxy. Client 2 however, sends the OK to the BYE to the OpenSIPS Proxy. Since the BYE messages do not traverse the Proxy, the OK to the BYE messages are getting retransmitted repeatedly by Client 2 and the sessions are not getting terminated properly. How do I make the BYE messages to go through the Proxy or the OK message sent directly to the Load Balancer so that the retransmissions do not happen and the sessions get terminated properly? [NB: When the Load Balancer is taken out of the loop and the Proxy configuration is kept the same, all the SIP messages traverses the Proxy and everything works fine i.e., the BYE and the OKs to the BYEs are handled properly and sessions get terminated properly.] Would greatly appreciate any help in this matter. Thanks in advance. Nil. ___ Users mailing list Users@lists.opensips.org mailto:Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Load Balancer Issue
Thanks Bogdan for taking time to respond to my post. I think you have guessed it right, I am using the sample routing script given in the Load Balancer (LB) tutorial and that is most likely sending the ACK and BYE messages directly to Client 2 bypassing the Proxy. The routing code snippets I am using at the LB and the Proxy are shown below. Could you please tell me what's going wrong over here? I am using record route support at both the clients. Alternatively if you could please tell me what should go in the routing blocks of the LB and the Proxy so that all the messages go through the LB and the Proxy then that will be of immense help too. Regards, Nil. Load Balancer: 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; } # detect resources and do balancing load_balance(1,sc); # LB function returns negative if no suitable destination (for requested resources) is found, # or if all destinations are full if ($retcode0) { sl_send_reply(500,Service full); exit; } xlog(Selected destination is: $du\n); # send it out if (!t_relay()) { sl_reply_error(); } } Proxy: route{ record_route(); if (!t_relay()) { # xlog(L_ERR,sl_reply_error\n); sl_reply_error(); } } On Sun, Oct 21, 2012 at 7:39 PM, Bogdan-Andrei Iancu bog...@opensips.orgwrote: ** Hi Nil, I wild guess is you are not correctly do loose_route on the LB, so instead of following the Route (to OpenSIPS Proxy), it goes directly to end destination in RURI (Client 2). Of course, I assume that all parties (LB + Proxy) do record_route() for the call, right ? Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developerhttp://www.opensips-solutions.com On 10/21/2012 10:09 AM, Nilanjan Banerjee wrote: Hello, I am trying to build the following setup using OpenSIPS load balancer and the proxy functionality: Client 1 (sipp) OpenSIPS Load Balancer OpenSIPS Proxy Client 2 (sipp) At the client ends I am using the following commands: Client 1: sipp -sn uac -rsa [Load Balancer Address] [Client 2 Address] Client 2: sipp -sn uas The Load Balancer is configured with a destination as the OpenSIPS Proxy and the Proxy is configured to simply forward the SIP messages based on IP address (using only forward(); in the routing block). Now everything (INVITE, OK and ACK messages) works fine except the BYE messages that are getting forwarded by the Load Balancer directly to Client 2 unlike the INVITE, OK and ACK messages that traverse the Proxy. Client 2 however, sends the OK to the BYE to the OpenSIPS Proxy. Since the BYE messages do not traverse the Proxy, the OK to the BYE messages are getting retransmitted repeatedly by Client 2 and the sessions are not getting terminated properly. How do I make the BYE messages to go through the Proxy or the OK message sent directly to the Load Balancer so that the retransmissions do not happen and the sessions get terminated properly? [NB: When the Load Balancer is taken out of the loop and the Proxy configuration is kept the same, all the SIP messages traverses the Proxy and everything works fine i.e., the BYE and the OKs to the BYEs are handled properly and sessions get terminated properly.] Would greatly appreciate any help in this matter. Thanks in advance. Nil. ___ Users mailing listUsers@lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Load Balancer Issue
Hello, I am trying to build the following setup using OpenSIPS load balancer and the proxy functionality: Client 1 (sipp) OpenSIPS Load Balancer OpenSIPS Proxy Client 2 (sipp) At the client ends I am using the following commands: Client 1: sipp -sn uac -rsa [Load Balancer Address] [Client 2 Address] Client 2: sipp -sn uas The Load Balancer is configured with a destination as the OpenSIPS Proxy and the Proxy is configured to simply forward the SIP messages based on IP address (using only forward(); in the routing block). Now everything (INVITE, OK and ACK messages) works fine except the BYE messages that are getting forwarded by the Load Balancer directly to Client 2 unlike the INVITE, OK and ACK messages that traverse the Proxy. Client 2 however, sends the OK to the BYE to the OpenSIPS Proxy. Since the BYE messages do not traverse the Proxy, the OK to the BYE messages are getting retransmitted repeatedly by Client 2 and the sessions are not getting terminated properly. How do I make the BYE messages to go through the Proxy or the OK message sent directly to the Load Balancer so that the retransmissions do not happen and the sessions get terminated properly? [NB: When the Load Balancer is taken out of the loop and the Proxy configuration is kept the same, all the SIP messages traverses the Proxy and everything works fine i.e., the BYE and the OKs to the BYEs are handled properly and sessions get terminated properly.] Would greatly appreciate any help in this matter. Thanks in advance. Nil. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Load Balancer Issue
Hi Nil, I wild guess is you are not correctly do loose_route on the LB, so instead of following the Route (to OpenSIPS Proxy), it goes directly to end destination in RURI (Client 2). Of course, I assume that all parties (LB + Proxy) do record_route() for the call, right ? Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com On 10/21/2012 10:09 AM, Nilanjan Banerjee wrote: Hello, I am trying to build the following setup using OpenSIPS load balancer and the proxy functionality: Client 1 (sipp) OpenSIPS Load Balancer OpenSIPS Proxy Client 2 (sipp) At the client ends I am using the following commands: Client 1: sipp -sn uac -rsa [Load Balancer Address] [Client 2 Address] Client 2: sipp -sn uas The Load Balancer is configured with a destination as the OpenSIPS Proxy and the Proxy is configured to simply forward the SIP messages based on IP address (using only forward(); in the routing block). Now everything (INVITE, OK and ACK messages) works fine except the BYE messages that are getting forwarded by the Load Balancer directly to Client 2 unlike the INVITE, OK and ACK messages that traverse the Proxy. Client 2 however, sends the OK to the BYE to the OpenSIPS Proxy. Since the BYE messages do not traverse the Proxy, the OK to the BYE messages are getting retransmitted repeatedly by Client 2 and the sessions are not getting terminated properly. How do I make the BYE messages to go through the Proxy or the OK message sent directly to the Load Balancer so that the retransmissions do not happen and the sessions get terminated properly? [NB: When the Load Balancer is taken out of the loop and the Proxy configuration is kept the same, all the SIP messages traverses the Proxy and everything works fine i.e., the BYE and the OKs to the BYEs are handled properly and sessions get terminated properly.] Would greatly appreciate any help in this matter. Thanks in advance. Nil. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Load Balancer Issue
Hi, I see here 2 reports: 1) opensips dies - check the log files for error messages to see why opensips stopped 2) load not decreasing - this means the BYE is missing or is not properly processed by opensips, so it thinks the call is still on. If you see that the BYEs are passing through, you could enable debugging only for the loose_route() function (use set_debug() function) to see if the BYE matches or not. Also you can check via teh dlg_list MI function the state of the ongoing calls. Regards, Bogdan Sathyanarayanan R wrote: We are using Opensips load balancer module to make outbound calls, when we pump more than 30 CPS, load in the load balancer is not decreased even after the call ends. Beyond certain point opensips service stops with the error “Opensips dead but subsys locked”. How this problem should be approached and solved? Regards, Sathya ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- Bogdan-Andrei Iancu www.voice-system.ro ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users