|
|
|
@ -9,7 +9,7 @@ use Getopt::Long; |
|
|
|
use Socket6; |
|
|
|
|
|
|
|
my ($NUM, $RUNTIME) = (1000, 30); |
|
|
|
my ($NODEL, $IP, $IPV6, $KEEPGOING, $REINVITES); |
|
|
|
my ($NODEL, $IP, $IPV6, $KEEPGOING, $REINVITES, $BRANCHES); |
|
|
|
GetOptions( |
|
|
|
'no-delete' => \$NODEL, |
|
|
|
'num-calls=i' => \$NUM, |
|
|
|
@ -18,6 +18,7 @@ GetOptions( |
|
|
|
'runtime=i' => \$RUNTIME, |
|
|
|
'keep-going' => \$KEEPGOING, # don't stop sending rtp if a packet doesn't go through |
|
|
|
'reinvites' => \$REINVITES, |
|
|
|
'branches' => \$BRANCHES, |
|
|
|
) or die; |
|
|
|
|
|
|
|
($IP || $IPV6) or die("at least one of --local-ip or --local-ipv6 must be given"); |
|
|
|
@ -56,7 +57,7 @@ connect($fd, sockaddr_in(12222, inet_aton("127.0.0.1"))) or die $!; |
|
|
|
|
|
|
|
msg('V') eq '20040107' or die; |
|
|
|
|
|
|
|
my @calls; |
|
|
|
my (@calls, %branches); |
|
|
|
|
|
|
|
sub do_rtp { |
|
|
|
print("sending rtp\n"); |
|
|
|
@ -104,11 +105,24 @@ $IP and push(@protos_avail, $proto_defs{ipv4}); |
|
|
|
$IPV6 and push(@protos_avail, $proto_defs{ipv6}); |
|
|
|
my @sides = qw(A B); |
|
|
|
|
|
|
|
sub callid { |
|
|
|
my $i = rand_str(50); |
|
|
|
$BRANCHES or return $i; |
|
|
|
rand() < .5 and return $i; |
|
|
|
if (rand() < .5) { |
|
|
|
my @k = keys(%branches); |
|
|
|
@k and $i = $k[rand(@k)]; |
|
|
|
} |
|
|
|
my $b = rand_str(20); |
|
|
|
push(@{$branches{$i}}, $b); |
|
|
|
return "$i;$b"; |
|
|
|
} |
|
|
|
|
|
|
|
sub update_lookup { |
|
|
|
my ($c, $i) = @_; |
|
|
|
my $j = $i ^ 1; |
|
|
|
|
|
|
|
my $callid = $$c[5] || ($$c[5] = rand_str(50)); |
|
|
|
my $callid = $$c[5] || ($$c[5] = callid()); |
|
|
|
|
|
|
|
my $protos = $$c[6] || ($$c[6] = []); |
|
|
|
my $fds = $$c[0] || ($$c[0] = []); |
|
|
|
|