mirror of https://github.com/sipwise/rtpengine.git
Change-Id: I2113b76d97f5cf6cc8927f92b8a178795322a77epull/1918/head
parent
ee707993f4
commit
135a95ef02
@ -0,0 +1,190 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use NGCP::Rtpengine::Test;
|
||||
use NGCP::Rtpclient::SRTP;
|
||||
use NGCP::Rtpengine::AutoTest;
|
||||
use Test::More;
|
||||
use POSIX;
|
||||
use Data::Dumper;
|
||||
|
||||
|
||||
autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1
|
||||
-n 2223 -f -L 7 -E --log-level-internals=7))
|
||||
or die;
|
||||
|
||||
|
||||
|
||||
my ($resp, $sock_a, $sock_b, $port_a, $seq, $ts, $ssrc);
|
||||
|
||||
|
||||
($sock_a) = new_call([qw(198.51.100.14 6150)]);
|
||||
|
||||
$resp = rtpe_req('transform', 'simple transform',
|
||||
{
|
||||
media => [
|
||||
{
|
||||
type => 'audio',
|
||||
codec => [
|
||||
{
|
||||
input => {
|
||||
codec => 'PCMA',
|
||||
'payload type' => 8,
|
||||
'clock rate' => 8000,
|
||||
channels => 1,
|
||||
},
|
||||
output => {
|
||||
codec => 'PCMU',
|
||||
'payload type' => 0,
|
||||
'clock rate' => 8000,
|
||||
channels => 1,
|
||||
},
|
||||
},
|
||||
],
|
||||
destination => {
|
||||
family => 'IP4',
|
||||
address => '198.51.100.14',
|
||||
port => 6150,
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
);
|
||||
|
||||
is($resp->{media}[0]{address}, '203.0.113.1', 'address ok');
|
||||
$port_a = $resp->{media}[0]{port};
|
||||
snd($sock_a, $port_a, rtp(8, 2000, 4000, 0x3456, "\x00" x 160));
|
||||
($seq, $ts, $ssrc) = rcv($sock_a, $port_a, rtpm(0, -1, -1, -1, "\x29" x 160));
|
||||
snd($sock_a, $port_a, rtp(8, 2001, 4160, 0x3456, "\x00" x 160));
|
||||
rcv($sock_a, $port_a, rtpm(0, $seq + 1, $ts + 160, $ssrc, "\x29" x 160));
|
||||
|
||||
rtpe_req('delete', 'delete call');
|
||||
|
||||
|
||||
($sock_a) = new_call([qw(198.51.100.14 6152)]);
|
||||
|
||||
$resp = rtpe_req('transform', 'no-op transform',
|
||||
{
|
||||
media => [
|
||||
{
|
||||
type => 'audio',
|
||||
codec => [
|
||||
{
|
||||
input => {
|
||||
codec => 'G722',
|
||||
'payload type' => 9,
|
||||
'clock rate' => 8000,
|
||||
channels => 1,
|
||||
},
|
||||
output => {
|
||||
codec => 'G722',
|
||||
'payload type' => 9,
|
||||
'clock rate' => 8000,
|
||||
channels => 1,
|
||||
},
|
||||
},
|
||||
],
|
||||
destination => {
|
||||
family => 'IP4',
|
||||
address => '198.51.100.14',
|
||||
port => 6152,
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
);
|
||||
|
||||
is($resp->{media}[0]{address}, '203.0.113.1', 'address ok');
|
||||
$port_a = $resp->{media}[0]{port};
|
||||
snd($sock_a, $port_a, rtp(9, 2000, 4000, 0x3456, "\x00" x 160));
|
||||
rcv($sock_a, $port_a, rtpm(9, 2000, 4000, 0x3456, "\x00" x 160));
|
||||
snd($sock_a, $port_a, rtp(9, 2001, 4160, 0x3456, "\x00" x 160));
|
||||
rcv($sock_a, $port_a, rtpm(9, 2001, 4160, 0x3456, "\x00" x 160));
|
||||
|
||||
rtpe_req('delete', 'delete call');
|
||||
|
||||
|
||||
($sock_a) = new_call([qw(198.51.100.14 6154)]);
|
||||
|
||||
$resp = rtpe_req('transform', 'multiple transforms',
|
||||
{
|
||||
media => [
|
||||
{
|
||||
type => 'audio',
|
||||
codec => [
|
||||
{
|
||||
input => {
|
||||
codec => 'G722',
|
||||
'payload type' => 9,
|
||||
'clock rate' => 8000,
|
||||
channels => 1,
|
||||
},
|
||||
output => {
|
||||
codec => 'G722',
|
||||
'payload type' => 9,
|
||||
'clock rate' => 8000,
|
||||
channels => 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
input => {
|
||||
codec => 'PCMA',
|
||||
'payload type' => 8,
|
||||
'clock rate' => 8000,
|
||||
channels => 1,
|
||||
},
|
||||
output => {
|
||||
codec => 'PCMU',
|
||||
'payload type' => 0,
|
||||
'clock rate' => 8000,
|
||||
channels => 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
input => {
|
||||
codec => 'PCMU',
|
||||
'payload type' => 0,
|
||||
'clock rate' => 8000,
|
||||
channels => 1,
|
||||
},
|
||||
output => {
|
||||
codec => 'PCMA',
|
||||
'payload type' => 8,
|
||||
'clock rate' => 8000,
|
||||
channels => 1,
|
||||
},
|
||||
},
|
||||
],
|
||||
destination => {
|
||||
family => 'IP4',
|
||||
address => '198.51.100.14',
|
||||
port => 6154,
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
);
|
||||
|
||||
is($resp->{media}[0]{address}, '203.0.113.1', 'address ok');
|
||||
$port_a = $resp->{media}[0]{port};
|
||||
snd($sock_a, $port_a, rtp(9, 2000, 4000, 0x3456, "\x00" x 160));
|
||||
($seq, $ts, $ssrc) = rcv($sock_a, $port_a, rtpm(9, -1, -1, -1, "\x00" x 160));
|
||||
snd($sock_a, $port_a, rtp(9, 2001, 4160, 0x3456, "\x00" x 160));
|
||||
($seq, $ts, $ssrc) = rcv($sock_a, $port_a, rtpm(9, $seq + 1, $ts + 160, $ssrc, "\x00" x 160));
|
||||
|
||||
snd($sock_a, $port_a, rtp(8, 2000, 4000, 0x346a, "\x00" x 160));
|
||||
($seq, $ts, $ssrc) = rcv($sock_a, $port_a, rtpm(0, -1, -1, -1, "\x29" x 160));
|
||||
snd($sock_a, $port_a, rtp(8, 2001, 4160, 0x346a, "\x00" x 160));
|
||||
($seq, $ts, $ssrc) = rcv($sock_a, $port_a, rtpm(0, $seq + 1, $ts + 160, $ssrc, "\x29" x 160));
|
||||
|
||||
snd($sock_a, $port_a, rtp(0, 2000, 4000, 0x347e, "\x00" x 160));
|
||||
($seq, $ts, $ssrc) = rcv($sock_a, $port_a, rtpm(8, -1, -1, -1, "\x2a" x 160));
|
||||
snd($sock_a, $port_a, rtp(0, 2001, 4160, 0x347e, "\x00" x 160));
|
||||
($seq, $ts, $ssrc) = rcv($sock_a, $port_a, rtpm(8, $seq + 1, $ts + 160, $ssrc, "\x2a" x 160));
|
||||
|
||||
rtpe_req('delete', 'delete call');
|
||||
|
||||
|
||||
done_testing();
|
||||
#done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit;
|
||||
Loading…
Reference in new issue