|
|
|
@ -14,7 +14,7 @@ use Digest::SHA qw(hmac_sha1); |
|
|
|
use MIME::Base64; |
|
|
|
|
|
|
|
my ($NUM, $RUNTIME, $STREAMS) = (1000, 30, 1); |
|
|
|
my ($NODEL, $IP, $IPV6, $KEEPGOING, $REINVITES, $BRANCHES, $PROTOS); |
|
|
|
my ($NODEL, $IP, $IPV6, $KEEPGOING, $REINVITES, $BRANCHES, $PROTOS, $DEST); |
|
|
|
GetOptions( |
|
|
|
'no-delete' => \$NODEL, |
|
|
|
'num-calls=i' => \$NUM, |
|
|
|
@ -26,6 +26,7 @@ GetOptions( |
|
|
|
'branches' => \$BRANCHES, |
|
|
|
'max-streams=i' => \$STREAMS, |
|
|
|
'protocols=s' => \$PROTOS, # "RTP/AVP,RTP/SAVP" |
|
|
|
'destination=s' => \$DEST, |
|
|
|
) or die; |
|
|
|
|
|
|
|
($IP || $IPV6) or die("at least one of --local-ip or --local-ipv6 must be given"); |
|
|
|
@ -34,6 +35,10 @@ $SIG{ALRM} = sub { print "alarm!\n"; }; |
|
|
|
setrlimit(RLIMIT_NOFILE, 8000, 8000); |
|
|
|
|
|
|
|
$PROTOS and $PROTOS = [split(/\s*[,;:]+\s*/, $PROTOS)]; |
|
|
|
$DEST and $DEST = [split(/:/, $DEST)]; |
|
|
|
$$DEST[0] or $$DEST[0] = 2223; |
|
|
|
$$DEST[1] or $$DEST[1] = $$DEST[0], undef($$DEST[0]); |
|
|
|
$$DEST[0] or $$DEST[0] = '127.0.0.1'; |
|
|
|
|
|
|
|
my @chrs = ('a' .. 'z', 'A' .. 'Z', '0' .. '9'); |
|
|
|
sub rand_str { |
|
|
|
@ -63,7 +68,7 @@ sub msg { |
|
|
|
} |
|
|
|
|
|
|
|
socket($fd, AF_INET, SOCK_DGRAM, 0) or die $!; |
|
|
|
connect($fd, sockaddr_in(2223, inet_aton("127.0.0.1"))) or die $!; |
|
|
|
connect($fd, sockaddr_in($$DEST[1], inet_aton($$DEST[0]))) or die $!; |
|
|
|
|
|
|
|
msg({command => 'ping'})->{result} eq 'pong' or die; |
|
|
|
|
|
|
|
|