SSRC/ROC debug tools for simulator-ng

pull/114/head
Richard Fuchs 10 years ago
parent 39392e2b98
commit 5d6604a816

@ -17,7 +17,8 @@ use SRTP;
my ($NUM, $RUNTIME, $STREAMS, $PAYLOAD, $INTERVAL, $RTCP_INTERVAL, $STATS_INTERVAL)
= (1000, 30, 1, 160, 20, 5, 5);
my ($NODEL, $IP, $IPV6, $KEEPGOING, $REINVITES, $PROTOS, $DEST, $SUITES, $NOENC, $RTCPMUX, $BUNDLE, $LAZY);
my ($NODEL, $IP, $IPV6, $KEEPGOING, $REINVITES, $PROTOS, $DEST, $SUITES, $NOENC, $RTCPMUX, $BUNDLE, $LAZY,
$CHANGE_SSRC);
GetOptions(
'no-delete' => \$NODEL,
'num-calls=i' => \$NUM,
@ -38,6 +39,7 @@ GetOptions(
'rtcp-mux' => \$RTCPMUX,
'bundle' => \$BUNDLE,
'lazy-params' => \$LAZY,
'change-ssrc' => \$CHANGE_SSRC,
) or die;
($IP || $IPV6) or die("at least one of --local-ip or --local-ipv6 must be given");
@ -154,6 +156,7 @@ sub rtp_encrypt {
my ($pkt, $roc) = SRTP::encrypt_rtp(@$dctx{qw(crypto_suite rtp_session_key rtp_session_salt
rtp_session_auth_key rtp_roc rtp_mki rtp_mki_len unenc_srtp unauth_srtp)}, $r);
$roc == ($$dctx{rtp_roc} // 0) or print("ROC is now $roc\n");
$$dctx{rtp_roc} = $roc;
$NOENC{rtp_packet} = $pkt;
@ -769,6 +772,21 @@ while (time() < $end) {
offer($c, 0, 1);
answer($c, 1, 0);
}
if ($CHANGE_SSRC && rand() < .001) {
my $c = $calls[rand(@calls)];
my $s = $$c{sides}[rand(2)];
my $st = rand($$s{num_streams});
my $d = (qw(in out))[rand(2)];
my $stc = $$s{trans_contexts}[$st];
my $ct = $$stc{$d};
if (defined($$ct{rtp_roc}) && $$stc{ssrc}) {
my $nssrc = rand(2 ** 32);
print("change SSRC from $$stc{ssrc} to $nssrc\n");
$$stc{ssrc} = $nssrc;
$$ct{roc} = 0;
}
}
}
if (!$NODEL) {

Loading…
Cancel
Save