|
|
|
@ -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); |
|
|
|
my ($NODEL, $IP, $IPV6, $KEEPGOING, $REINVITES, $BRANCHES, $PROTOS); |
|
|
|
GetOptions( |
|
|
|
'no-delete' => \$NODEL, |
|
|
|
'num-calls=i' => \$NUM, |
|
|
|
@ -25,6 +25,7 @@ GetOptions( |
|
|
|
'reinvites' => \$REINVITES, |
|
|
|
'branches' => \$BRANCHES, |
|
|
|
'max-streams=i' => \$STREAMS, |
|
|
|
'protos=s' => \$PROTOS, # "RTP/AVP,RTP/SAVP" |
|
|
|
) or die; |
|
|
|
|
|
|
|
($IP || $IPV6) or die("at least one of --local-ip or --local-ipv6 must be given"); |
|
|
|
@ -32,13 +33,7 @@ GetOptions( |
|
|
|
$SIG{ALRM} = sub { print "alarm!\n"; }; |
|
|
|
setrlimit(RLIMIT_NOFILE, 8000, 8000); |
|
|
|
|
|
|
|
# global for now |
|
|
|
#my $srtp_master_key = pack("H*", 'E1F97A0D3E018BE0D64FA32C06DE4139'); |
|
|
|
#my $srtp_master_salt = pack("H*", '0EC675AD498AFEEBB6960B3AABE6'); |
|
|
|
#my ($srtp_session_key, $srtp_session_auth_key, $srtp_session_salt) |
|
|
|
# = gen_rtp_session_keys($srtp_master_key, $srtp_master_salt); |
|
|
|
#my ($srtcp_session_key, $srtcp_session_auth_key, $srtcp_session_salt) |
|
|
|
# = gen_rtcp_session_keys($srtp_master_key, $srtp_master_salt); |
|
|
|
$PROTOS and $PROTOS = [split(/\s*[,;:]+\s*/, $PROTOS)]; |
|
|
|
|
|
|
|
my @chrs = ('a' .. 'z', 'A' .. 'Z', '0' .. '9'); |
|
|
|
sub rand_str { |
|
|
|
@ -433,6 +428,7 @@ my @transports = ( |
|
|
|
rtcp_func => \&rtcp_savpf, |
|
|
|
}, |
|
|
|
); |
|
|
|
my %transports = map {$$_{name} => $_} @transports; |
|
|
|
|
|
|
|
sub callid { |
|
|
|
my $i = rand_str(50); |
|
|
|
@ -466,8 +462,9 @@ sub update_lookup { |
|
|
|
} |
|
|
|
for my $x (0,1) { |
|
|
|
$$trans[$x] and next; |
|
|
|
#$$trans[$x] = $transports[rand(@transports)]; |
|
|
|
$$trans[$x] = $transports[rand(@transports)]; |
|
|
|
$$trans[$x] = ($PROTOS && $$PROTOS[$x] && $transports{$$PROTOS[$x]}) |
|
|
|
? $transports{$$PROTOS[$x]} |
|
|
|
: $transports[rand(@transports)]; |
|
|
|
} |
|
|
|
my ($pr, $pr_o) = @$protos[$i, $j]; |
|
|
|
my ($tr, $tr_o) = @$trans[$i, $j]; |
|
|
|
|