diff --git a/tests/simulator-ng.pl b/tests/simulator-ng.pl index d5d104e8a..d55b4e6e2 100755 --- a/tests/simulator-ng.pl +++ b/tests/simulator-ng.pl @@ -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];