Jeff Ollier wrote:
> Anyone know how to get rid of this error:  2006-10-31 17:00:49: Unable 
> to bind remote control socket (tried UDP ports 8888-8898).?
>  
> I am running SIPp on Windows.  I created a batch file to run 25 
> simultaneous calls in background mode.  I want to run about 200-500 
> simultaneous calls.  After 10 calls, it starts sending the error.  Any 
> way of increasing the amount of ports it uses or another way around 
> it?  Each call uses a separate IP address for the caller and the 
> callee.  I have 50 IP addresses on my PC, but one NIC.
>  
> Or, if you know another way of doing this, PLEASE help.  My hands are 
> cramping from copying and pasting individual xml files and adjusting 
> command lines and writing batch files.  I am not a coder, so this 
> takes me awhile.
>  
> My command lines:
> Register (don't need to register all at the same time):
> sipp 10.0.60.1 -sf 4501reg.xml -m 1 -mp 4501 -i 10.0.62.101 -p 5060
> sipp 10.0.60.1 -sf 4502reg.xml -m 1 -mp 4502 -i 10.0.62.102 -p 5060
>  
> Invite:
> sipp 10.0.60.1 -sf 4501invite.xml -m 1 -mp 4501 -i 10.0.62.101 -p 5060 -bg
>  
> Response:
> sipp 10.0.60.1 -sf response.xml -m 1 -mp 4502 -i 10.0.62.102 -p 5060 -bg
>  
> If you need more info, let me know.
>  
>  
>
> Jeff Ollier│Network Quality Control Engineer
>
Jeff,

this is because you are starting many instances of SIPp (more than 10). 
It's OK, but you might want to look at the "-t ui" transport mode which 
I think would help you in your case (never used it myself). See below 
for details.
If this doesn't fit your need, you can remove the control features by 
removing those lines in sipp.cpp (around line 4300):
  if (pthread_create
      (&pthread_id,
       NULL,
       (void *(*)(void *)) ctrl_thread,
       (void*)NULL)
      == -1) {
    ERROR_NO("Unable to create remote control socket thread");
  }

I will make that optional.

For the documentation of -t ui transport mode, I realize that this is 
not in the user doc. I will add that. In the meantime, here is the 
original email from Michel De Boer:
-----------------
Recently I had the need for a SIP call generator to generate
calls from 100 different IP addresses (in the same /24 subnet).
I had two Linux machines
each configured with 100 IP addresses. What I wanted to do is
to register subscribers from both of these machines
distributed over the IP addresses and then generate calls
for all subscribers from 1 machine via a SIP proxy towards
subscribers on the other machine.

I liked the functionality offered by SIPP but it did not
fully satisfy my requirements. SIPP generated all
calls/registrations from a single IP address.

To suit my needs I implemented an extension in SIPP to make
it possible to generate and receive calls from multiple IP
addresses on a single machine.

In the attached sipp-diff.gz you find the diff of my code
against the 1.1rc2 version.

Here is how it works:

For some simple scenario's I added the following command
line option:

  -bind_local

You can use this option together with the existing -i
option. SIPP will then bind the socket to the IP address
you specified with -i instead of binding it to 0.0.0.0 <http://0.0.0.0>
This way you can force SIPP to use 1 particular address
on a PC with mutliple IP addresses in the same subnet.
You can run mutliple instances of SIPP on different
IP addresses.

For my tests I needed a more sophistaced way though.
I wanted to be able to specify an IP address on
each line of my csv inject file. SIPP then should use
this IP address as the source IP address for sending
out an INVITE or REGISTER for this particular line
of the inject file. And it should be possible to specify
the same IP address for several lines.

Therefor I added the following command line
options:

  -t ui
       This option runs SIPP in the new mode opening
       a socket for each IP address it finds in the
       inject file.

  -ip_field <nr>
       This option tells SIPP which field of the CSV
       inject file contains the IP address. When you
       omit this field, SIPP will use field 0.

When using the -t ui field it is mandotory to use the
-inf option.

When you use this and your IP addresses are in field X
of the inject file, then you have to use [fieldX]
instead of [local_ip] in your UAC XML scenario file.

The same IP address may be used in multiple lines of the
inject file. SIPP will open a socket on the IP address
as soon as it encounters it. When it encounters the
same IP address again, it will reuse the already opened
socket.

When you use the -t ui option on the server side, then
you also must pass an inject file. This inject file is
very simple. It should start with the keyword SEQUENTIAL
and then have an IP address on each subsequent line, eg.

  SEQUENTIAL
  192.168.2.1 <http://192.168.2.1>
  192.168.2.2 <http://192.168.2.2>

SIPP will then open a socket on each of these IP addresses
instead of one socket on 0.0.0.0 <http://0.0.0.0>

This way SIPP will respond from the same IP address on which
it received a request, eg. an INVITE.

The last thing that needed to be solved was that on the
server side I wanted that the Contact and Via headers also
contained the IP address on which the request was received.
For this I created a new field that can be used in a UAS
XML scenario file:

  [server_ip]
       This field will be replaced with the IP address on
       which a request was received.

So when using this, you have to replace the [local_ip] in
your UAS XML scenario file by [server_ip]

In the attached scenario.tar.gz you can find some example
scenario files that I used to test SIPP using 2 PC's
back2back.

On one PC I ran the server listening on 2 IP addresses:

  sipp -sf my_uas.xml -t ui -inf b_party.csv

On the other PC I ran the client twice sending calls
to both server IP addresses:

  sipp -sf my_uac.xml -t ui -inf a_party1.csv 192.168.2.104 
<http://192.168.2.104>
  sipp -sf my_uac.xml -t ui -inf a_party1.csv 192.168.2.220 
<http://192.168.2.220>

I omited the ip_field parameter as I put the IP address in
field 0 in the a_party*.csv files.

NOTE:
- I implemented this feature only for UDP over IPv4. I think
  it would be easy to extend it to IPv6
- On each address the same port is used.
- The current parser is very sensitive to white space in the
  inject files. Empty lines and white space surrounding the
  IP addresses will not be trimmed and may cause crashes.

Let me know if you are willing to integrate my modifications
into SIPP. I think it's useful.

Best regards,
Michel de Boer
-----------------

-- 
Olivier
HP OpenCall Software
http://www.hp.com/go/opencall/


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Sipp-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sipp-users

Reply via email to