diff --git a/t/auto-daemon-tests.pl b/t/auto-daemon-tests.pl index da0ffd2bf..ea498eef4 100755 --- a/t/auto-daemon-tests.pl +++ b/t/auto-daemon-tests.pl @@ -40,6 +40,20 @@ my ($sock_a, $sock_b, $sock_c, $sock_d, $port_a, $port_b, $ssrc, $ssrc_b, $resp, +sub stun_succ { + my ($port, $tid, $my_pwd) = @_; + my $sw = NGCP::Rtpclient::ICE::attr(0x8022, 'perltester'); + my $xor_addr = NGCP::Rtpclient::ICE::attr(0x0020, pack('nna4', 1, $port ^ 0x2112, pack('CCCC', 203,0,113,1) ^ "\x21\x12\xa4\x42")); + my $attrs = [$sw, $xor_addr]; + NGCP::Rtpclient::ICE::integrity($attrs, 257, $tid, $my_pwd); + NGCP::Rtpclient::ICE::fingerprint($attrs, 257, $tid); + my $pack = join('', @{$attrs}); + my $packet = pack('nnNa12', 257, length($pack), 0x2112A442, $tid) . $pack; + #print(unpack('H*', $packet)."\n"); + return $packet; +}; + + ($sock_a, $sock_b) = new_call([qw(198.51.100.1 4370)], [qw(198.51.100.3 4372)]); ($port_a) = offer('ROC reset after re-invite', @@ -6612,27 +6626,14 @@ SDP @ret3 = rcv($sock_b, -1, qr/^\x00\x01\x00.\x21\x12\xa4\x42(............)\x80\x22\x00.rtpengine.*?\x00\x06\x00\x11q2758e93:(........)\x00\x00\x00\x80\x29\x00\x08........\x00\x24\x00\x04\x6e\xff\xff\xfe\x00\x08\x00\x14....................\x80\x28\x00\x04....$/s); @ret4 = rcv($sock_d, -1, qr/^\x00\x01\x00.\x21\x12\xa4\x42(............)\x80\x22\x00.rtpengine.*?\x00\x06\x00\x11q2758e93:(........)\x00\x00\x00\x80\x29\x00\x08........\x00\x24\x00\x04\x6e\xff\xff\xfe\x00\x08\x00\x14....................\x80\x28\x00\x04....$/s); -sub stun_succ { - my ($port, $tid) = @_; - my $sw = NGCP::Rtpclient::ICE::attr(0x8022, 'perltester'); - my $xor_addr = NGCP::Rtpclient::ICE::attr(0x0020, pack('nna4', 1, $port ^ 0x2112, pack('CCCC', 203,0,113,1) ^ "\x21\x12\xa4\x42")); - my $attrs = [$sw, $xor_addr]; - NGCP::Rtpclient::ICE::integrity($attrs, 257, $tid, 'bd5e845657ecb8d6dd8e1bc6'); - NGCP::Rtpclient::ICE::fingerprint($attrs, 257, $tid); - my $pack = join('', @{$attrs}); - my $packet = pack('nnNa12', 257, length($pack), 0x2112A442, $tid) . $pack; - #print(unpack('H*', $packet)."\n"); - return $packet; -}; - # send back RTP binding successes -snd($sock_a, $ret1[0], stun_succ($ret1[0], $ret1[1])); -snd($sock_c, $ret2[0], stun_succ($ret2[0], $ret2[1])); +snd($sock_a, $ret1[0], stun_succ($ret1[0], $ret1[1], 'bd5e845657ecb8d6dd8e1bc6')); +snd($sock_c, $ret2[0], stun_succ($ret2[0], $ret2[1], 'bd5e845657ecb8d6dd8e1bc6')); # send secondary RTCP binding success -snd($sock_d, $ret4[0], stun_succ($ret4[0], $ret4[1])); +snd($sock_d, $ret4[0], stun_succ($ret4[0], $ret4[1], 'bd5e845657ecb8d6dd8e1bc6')); # now we should be getting DTLS