#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use Test2::Tools::Compare qw(); use NGCP::Rtpclient::ICE; use POSIX; autotest_start(qw(--config-file=test1.conf)) or die; my ($sock_a, $sock_b, $sock_c, $sock_d, $port_a, $port_b, $ssrc, $ssrc_b, $resp, $sock_ax, $sock_bx, $port_ax, $port_bx, $srtp_ctx_a, $srtp_ctx_b, $srtp_ctx_a_rev, $srtp_ctx_b_rev, $ufrag_a, $ufrag_b, @ret1, @ret2, @ret3, @ret4, $srtp_key_a, $srtp_key_b, $ts, $seq, $has_recv); new_call; offer('basic call', { }, < 'foobar' }, < 'WebRTC' }, < 'overlap-A' }, <=', 3000, 'range OK'); cmp_ok($ports_a1[1], '<=', 3007, 'range OK'); # A: 3 port pairs, 1 or 2 unique # B: 3 or 4 port pairs, 2 unique new_call; my @ports_a2 = publish('overlap intf A2', { interface => 'overlap-A' }, <=', 3000, 'range OK'); cmp_ok($ports_a2[1], '<=', 3007, 'range OK'); isnt($ports_a2[0], $ports_a1[0], 'unique port'); # A: 2 port pairs, 0-2 unique # B: 2-4 port pairs, 2 unique new_call; my @ports_b1 = publish('overlap intf B1', { interface => 'overlap-B' }, <=', 3004, 'range OK'); cmp_ok($ports_b1[1], '<=', 3011, 'range OK'); isnt($ports_b1[0], $ports_a1[0], 'unique port'); isnt($ports_b1[0], $ports_a2[0], 'unique port'); # A: 2 port pairs, 0-2 unique # B: 1-3 port pairs, 1 or 2 unique new_call; my @ports_b2 = publish('overlap intf B2', { interface => 'overlap-B' }, <=', 3004, 'range OK'); cmp_ok($ports_b2[1], '<=', 3011, 'range OK'); isnt($ports_b2[0], $ports_a1[0], 'unique port'); isnt($ports_b2[0], $ports_a2[0], 'unique port'); isnt($ports_b2[0], $ports_b1[0], 'unique port'); #done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit; done_testing();