Hi Pavel, Thanks for your reply and sorry for the delayed response.
I have tried the setup as below : *UAC(192.168.100.21:5065)-------LB (192.168.100.21:5060)------SIP Proxy (192.168.100.17:5060)------------UAS(192.168.100.17:5080 <http://192.168.100.17:5080>)* sipp commands used : . */sipp -sf uac_mod.xml 192.168.100.21:5060 <http://192.168.100.21:5060> -s archana -i 192.168.100.21 -p 5065 -r 1 -rp 1000 -m 10./sipp -sf uas_mod_orig.xml -rsa 192.168.100.21:5060 <http://192.168.100.21:5060> -i 192.168.100.17 -p 5080* where I have registered user archana in the SIP proxy server . I am running 1 instance of sipp (UAC) in the machine with LB and UAS in the machine with SIP Proxy. But I was not successful and got the error message as address incomplete. It goes to the load balancer script where it load balances but it says address incomplete and does not move forward. Not able to figure out where the problem is ? Request your help as do not know where I am going wrong ? The wireshark logs as well as the uas and uac xmls are attached. The Opensips LB Logs are as below where destination uri is coming as null : Feb 20 16:35:13 stack-LB /usr/local/opensips_proxy/sbin/opensips[2539]: [Script Trace][line 247][LB][core xlog] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:13 stack-LB /usr/local/opensips_proxy/sbin/opensips[2539]: Sending out request to lb sip:archana@192.168.100.21:5060 Feb 20 16:35:13 stack-LB /usr/local/opensips_proxy/sbin/opensips[2539]: [Script Trace][line 256][LB][core if] -> (INVITE from 192.168.100.21, ruri= sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:13 stack-LB /usr/local/opensips_proxy/sbin/opensips[2539]: [Script Trace][line 249][LB][module load_balance] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:13 stack-LB /usr/local/opensips_proxy/sbin/opensips[2539]: [Script Trace][line 251][LB][core xlog] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:13 stack-LB /usr/local/opensips_proxy/sbin/opensips[2539]: Inside load_balance loop LoadBalance Feb 20 16:35:13 stack-LB /usr/local/opensips_proxy/sbin/opensips[2539]: [Script Trace][line 252][LB][module send_reply] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:13 stack-LB /usr/local/opensips_proxy/sbin/opensips[2539]: [Script Trace][line 253][LB][core exit] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 163][LB][core if] -> (INVITE from 192.168.100.21, ruri= sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 157][LB][module mf_process_maxfwd_header] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 163][LB][core xlog] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: Inside main route loop LoadBalance Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 164][LB][core xlog] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: Sending out request to sip:archana@192.168.100.21:5060 Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 165][LB][core xlog] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: Sending out request to <null> Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 214][LB][core if] -> (INVITE from 192.168.100.21, ruri= sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 167][LB][module has_totag] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 223][LB][core if] -> (INVITE from 192.168.100.21, ruri= sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 218][LB][module is_method] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 229][LB][core if] -> (INVITE from 192.168.100.21, ruri= sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 229][LB][module t_check_trans] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 241][LB][core if] -> (INVITE from 192.168.100.21, ruri= sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 232][LB][module loose_route] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 241][LB][core xlog] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: Sending out request bfrr to <null> Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 242][LB][module record_route] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 244][LB][core setflag] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 246][LB][core xlog] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: Sending out request to lb <null> Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 247][LB][core xlog] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: Sending out request to lb sip:archana@192.168.100.21:5060 Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 256][LB][core if] -> (INVITE from 192.168.100.21, ruri= sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 249][LB][module load_balance] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 251][LB][core xlog] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: Inside load_balance loop LoadBalance Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 252][LB][module send_reply] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Feb 20 16:35:14 stack-LB /usr/local/opensips_proxy/sbin/opensips[2541]: [Script Trace][line 253][LB][core exit] -> (INVITE from 192.168.100.21, ruri=sip:archana@192.168.100.21:5060/<null>) Thanks Regards Mayur On Tue, Jan 16, 2018 at 10:24 PM, Šindelka Pavel <sinde...@ttc.cz> wrote: > Well, as for me, the load balancer stands there to hide from the > individual clients the topology of the core network and to spread evenly > the load between them. I know nothing at all about OpenSips LB in > particular, but a normal SBC does not need to know the individual user > accounts in advance - when it sees the first REGISTER, it chooses the right > core machine according to its load distribution rules, and remembers that > assignment if the REGISTER is successful. And if an INVITE comes from the > same user, it re-uses the association. If we talk about "trunk" peers which > do not register, then the core machine is chosen individually for each new > dialog (on UDP) or each new TCP session (on TCP). > > So in your example scenario, I would run a single UAC scenario talking to > the LB, and as many UAS scenarios as you have proxies. In case of two core > machines and even call distribution and UDP, you should end up with 2 N > calls at the UAC and N calls at each UAS. With TCP, all the UAC calls may > end at the same UAS if the "single-TCP-session-for-all-calls" mode is > used at UAC SIPp side, or again 1:1 share on both UAS if > "new-TCP-session-for-each-call" mode is used. > > P. > > Dne 15.1.2018 v 18:24 Mayur Koshal napsal(a): > > Hi All, > > > I am using sipp to run performance of the Opensips proxy server. > > My setup is as : > > > * UAC(192.168.100.19:5065)------Opensips Proxy > Server(192.168.100.187:5060)--------UAS(192.168.100.187:5080 > <http://192.168.100.187:5080>) * > > I have registered a user Mayur@192.168.100.187:5080 in the Opensips using > ./opensipsctl ul add command. > > > UAC command : ./sipp -sf uac.xml 192.168.100.187:5060 -s Mayur -i > 192.168.100.19 -p 5065 -m 10 > UAS command : ./sipp -sf uas.xml -rsa 192.168.100.187:5060 -i > 192.168.100.187 -p 5080 -m 10 > > I have been able to successfully run the setup and test the performance of > opensips.(Thanks to Pavel for resolving the issues which I faced.) > > > > *Now I have introduced a load balancer in between UAC and Opensips proxy > server like :* > > > > *UAC(192.168.100.19:5065 <http://192.168.100.19:5065>) ---- Opensips > LB(192.168.100.19:5060)-------- ------ Opensips Proxy > Server(192.168.100.187:5060)--------UAS(192.168.100.187:5080 > <http://192.168.100.187:5080>)* > > > The load balancer forwards the incoming request to the proxy server as it > is configured in the load balancer table. > > > > > > > > > > *My Ques are : 1) Should I add the user in the load balancer or Opensips > Proxy server ? 2) How will the UAC and UAS commands look like in this case > of load balancing. I am somehow not able to figure out. Request your help > and suggestion for the sipp configuration to be used for testing the load > balancer setup. I have tried some but did not succeed.* > > > Thanks > > Regards > Mayur > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > > > _______________________________________________ > Sipp-users mailing > listSipp-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/sipp-users > > > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Sipp-users mailing list > Sipp-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sipp-users > >
lb_20Feb.pcap
Description: Binary data
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE scenario SYSTEM "sipp.dtd"> <!-- This program is free software; you can redistribute it and/or --> <!-- modify it under the terms of the GNU General Public License as --> <!-- published by the Free Software Foundation; either version 2 of the --> <!-- License, or (at your option) any later version. --> <!-- --> <!-- This program is distributed in the hope that it will be useful, --> <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of --> <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --> <!-- GNU General Public License for more details. --> <!-- --> <!-- You should have received a copy of the GNU General Public License --> <!-- along with this program; if not, write to the --> <!-- Free Software Foundation, Inc., --> <!-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --> <!-- --> <!-- Sipp default 'uac' scenario. --> <!-- --> <scenario name="Basic Sipstone UAC"> <!-- In client mode (sipp placing calls), the Call-ID MUST be --> <!-- generated by sipp. To do so, use [call_id] keyword. --> <send retrans="500"> <![CDATA[ INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number] To: sut <sip:[service]@[remote_ip]:[remote_port]> Call-ID: [call_id] CSeq: 1 INVITE Contact: sip:sipp@[local_ip]:[local_port] Max-Forwards: 70 Subject: Performance Test Content-Type: application/sdp Content-Length: [len] v=0 o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] s=- c=IN IP[media_ip_type] [media_ip] t=0 0 m=audio [media_port] RTP/AVP 0 a=rtpmap:0 PCMU/8000 ]]> </send> <recv response="100" optional="true"> </recv> <recv response="180" optional="true"> </recv> <!-- By adding rrs="true" (Record Route Sets), the route sets --> <!-- are saved and used for following messages sent. Useful to test --> <!-- against stateful SIP proxies/B2BUAs. --> <recv response="200" rtd="true"> <action> <assignstr assign_to="host" value="192.168.100.17" /> <assignstr assign_to="port" value="5080" /> <assignstr assign_to="transport" value="UDP" /> <setdest host="[$host]" port="[$port]" protocol="[$transport]" /> </action> </recv> <!-- Packet lost can be simulated in any send/recv message by --> <!-- by adding the 'lost = "10"'. Value can be [1-100] percent. --> <send> <![CDATA[ ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number] To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param] Call-ID: [call_id] CSeq: 1 ACK Contact: sip:sipp@[local_ip]:[local_port] Max-Forwards: 70 Subject: Performance Test Content-Length: 0 ]]> </send> <!-- This delay can be customized by the -d command-line option --> <!-- or by adding a 'milliseconds = "value"' option here. --> <!-- <pause milliseconds= "2000"/> --> <!-- The 'crlf' option inserts a blank line in the statistics report. --> <send retrans="500"> <![CDATA[ BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number] To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param] Call-ID: [call_id] CSeq: 2 BYE Contact: sip:sipp@[local_ip]:[local_port] Max-Forwards: 70 Subject: Performance Test Content-Length: 0 ]]> </send> <recv response="200" crlf="true"> </recv> <!-- definition of the response time repartition table (unit is ms) --> <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/> <!-- definition of the call length repartition table (unit is ms) --> <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> </scenario>
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE scenario SYSTEM "sipp.dtd"> <!-- This program is free software; you can redistribute it and/or --> <!-- modify it under the terms of the GNU General Public License as --> <!-- published by the Free Software Foundation; either version 2 of the --> <!-- License, or (at your option) any later version. --> <!-- --> <!-- This program is distributed in the hope that it will be useful, --> <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of --> <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --> <!-- GNU General Public License for more details. --> <!-- --> <!-- You should have received a copy of the GNU General Public License --> <!-- along with this program; if not, write to the --> <!-- Free Software Foundation, Inc., --> <!-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --> <!-- --> <!-- Sipp default 'uas' scenario. --> <!-- --> <scenario name="Basic UAS responder"> <!-- By adding rrs="true" (Record Route Sets), the route sets --> <!-- are saved and used for following messages sent. Useful to test --> <!-- against stateful SIP proxies/B2BUAs. --> <recv request="INVITE" crlf="true"> </recv> <!-- The '[last_*]' keyword is replaced automatically by the --> <!-- specified header if it was present in the last message received --> <!-- (except if it was a retransmission). If the header was not --> <!-- present or if no message has been received, the '[last_*]' --> <!-- keyword is discarded, and all bytes until the end of the line --> <!-- are also discarded. --> <!-- --> <!-- If the specified header was present several times in the --> <!-- message, all occurences are concatenated (CRLF seperated) --> <!-- to be used in place of the '[last_*]' keyword. --> <send> <![CDATA[ SIP/2.0 180 Ringing [last_Via:] [last_From:] [last_To:];tag=[call_number] [last_Call-ID:] [last_CSeq:] Contact: <sip:[local_ip]:[local_port];transport=[transport]> Content-Length: 0 ]]> </send> <send retrans="500"> <![CDATA[ SIP/2.0 200 OK [last_Via:] [last_From:] [last_To:];tag=[call_number] [last_Call-ID:] [last_CSeq:] Contact: <sip:[local_ip]:[local_port];transport=[transport]> Content-Type: application/sdp Content-Length: [len] v=0 o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] s=- c=IN IP[media_ip_type] [media_ip] t=0 0 m=audio [media_port] RTP/AVP 0 a=rtpmap:0 PCMU/8000 ]]> </send> <recv request="ACK" optional="true" rtd="true" crlf="true"> </recv> <recv request="BYE"> </recv> <send> <action> <assignstr assign_to="host" value="192.168.100.21" /> <assignstr assign_to="port" value="5065" /> <assignstr assign_to="transport" value="UDP" /> <setdest host="[$host]" port="[$port]" protocol="[$transport]" /> </action> <![CDATA[ SIP/2.0 200 OK [last_Via:] [last_From:] [last_To:] [last_Call-ID:] [last_CSeq:] Contact: <sip:[local_ip]:[local_port];transport=[transport]> Content-Length: 0 ]]> </send> <!-- Keep the call open for a while in case the 200 is lost to be --> <!-- able to retransmit it if we receive the BYE again. --> <pause milliseconds="2000"/> <!-- definition of the response time repartition table (unit is ms) --> <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/> <!-- definition of the call length repartition table (unit is ms) --> <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> </scenario>
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Sipp-users mailing list Sipp-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sipp-users