mirror of https://github.com/sipwise/rtpengine.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
647 lines
14 KiB
647 lines
14 KiB
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
use NGCP::Rtpengine::Test;
|
|
use NGCP::Rtpclient::SRTP;
|
|
use NGCP::Rtpengine::AutoTest;
|
|
use Test::More;
|
|
use NGCP::Rtpclient::ICE;
|
|
use POSIX;
|
|
|
|
autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1
|
|
-i foo/203.0.113.7 -i bar/203.0.113.8
|
|
-n 2223 -c 12345 -f -L 7 -E -u 2222 --silence-detect=1 --log-level-internals=7))
|
|
or die;
|
|
|
|
new_call;
|
|
|
|
offer('rtpp-flags: basic A to B call', { 'rtpp-flags' => 'replace-origin strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2000 RTP/AVP 0
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
answer('rtpp-flags: basic A to B call', { 'rtpp-flags' => 'replace-origin strict-source label=callee OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.3
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2002 RTP/AVP 0
|
|
c=IN IP4 198.51.100.3
|
|
a=sendrecv
|
|
--------------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('rtpp-flags: basic A to B call, remove ICE',
|
|
{ 'rtpp-flags' => 'ICE=remove replace-origin strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2000 RTP/AVP 0
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
a=ice-pwd:bd5e8b8d6dd8e1bc6
|
|
a=ice-ufrag:q27e93
|
|
a=candidate:1 1 UDP 2130706303 198.51.100.4 2412 typ host
|
|
a=candidate:1 2 UDP 2130706302 198.51.100.4 2413 typ host
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
answer('rtpp-flags: basic A to B call, remove ICE',
|
|
{ 'rtpp-flags' => 'replace-origin strict-source label=callee OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.3
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2002 RTP/AVP 0
|
|
c=IN IP4 198.51.100.3
|
|
a=sendrecv
|
|
--------------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
a=ice-ufrag:ICEUFRAG
|
|
a=ice-pwd:ICEPWD
|
|
a=candidate:ICEBASE 1 UDP 2130706431 203.0.113.1 PORT typ host
|
|
a=candidate:ICEBASE 1 UDP 2130706175 2001:db8:4321::1 PORT typ host
|
|
a=candidate:ICEBASE 2 UDP 2130706430 203.0.113.1 PORT typ host
|
|
a=candidate:ICEBASE 2 UDP 2130706174 2001:db8:4321::1 PORT typ host
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('rtpp-flags: replace option, media level',
|
|
{ 'rtpp-flags' => 'replace-zero-address strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.101.40
|
|
s=tester
|
|
t=0 0
|
|
m=audio 16478 RTP/AVP 8
|
|
c=IN IP4 0.0.0.0
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.101.40
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 8
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:8 PCMA/8000
|
|
a=sendonly
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('rtpp-flags: replace option, session level',
|
|
{ 'rtpp-flags' => 'replace-zero-address strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.101.40
|
|
s=tester
|
|
c=IN IP4 0.0.0.0
|
|
t=0 0
|
|
m=audio 16478 RTP/AVP 8
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.101.40
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 8
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:8 PCMA/8000
|
|
a=sendonly
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('rtpp-flags: codec-accept',
|
|
{ 'rtpp-flags' => 'codec-accept=PCMU replace-origin strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.101.40
|
|
s=tester
|
|
t=0 0
|
|
m=audio 3000 RTP/AVP 0 8
|
|
c=IN IP4 198.51.100.1
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0 8
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=rtpmap:8 PCMA/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
answer('rtpp-flags: codec-accept',
|
|
{ 'rtpp-flags' => 'replace-origin strict-source label=callee OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.101.40
|
|
s=tester
|
|
t=0 0
|
|
m=audio 3000 RTP/AVP 8
|
|
c=IN IP4 198.51.100.1
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('rtpp-flags: codec-accept obj first',
|
|
{ 'rtpp-flags' => 'codec=[accept=[PCMU]] replace-origin strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.101.40
|
|
s=tester
|
|
t=0 0
|
|
m=audio 3000 RTP/AVP 0 8
|
|
c=IN IP4 198.51.100.1
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0 8
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=rtpmap:8 PCMA/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
answer('rtpp-flags: codec-accept obj first',
|
|
{ 'rtpp-flags' => 'replace-origin strict-source label=callee OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.101.40
|
|
s=tester
|
|
t=0 0
|
|
m=audio 3000 RTP/AVP 8
|
|
c=IN IP4 198.51.100.1
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('rtpp-flags: codec-accept obj last',
|
|
{ 'rtpp-flags' => 'replace-origin strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP codec=[accept=[PCMU]] ' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.101.40
|
|
s=tester
|
|
t=0 0
|
|
m=audio 3000 RTP/AVP 0 8
|
|
c=IN IP4 198.51.100.1
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0 8
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=rtpmap:8 PCMA/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
answer('rtpp-flags: codec-accept obj last',
|
|
{ 'rtpp-flags' => 'replace-origin strict-source label=callee OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.101.40
|
|
s=tester
|
|
t=0 0
|
|
m=audio 3000 RTP/AVP 8
|
|
c=IN IP4 198.51.100.1
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('remove rtcp-mux support',
|
|
{ 'rtpp-flags' => 'rtcp-mux-demux replace-origin strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
c=IN IP4 198.51.100.1
|
|
m=audio 4024 RTP/AVP 0
|
|
a=rtcp-mux
|
|
a=inactive
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=inactive
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('remove rtcp-mux support obj',
|
|
{ 'rtpp-flags' => 'rtcp-mux=[demux] replace=[origin] strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
c=IN IP4 198.51.100.1
|
|
m=audio 4024 RTP/AVP 0
|
|
a=rtcp-mux
|
|
a=inactive
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=inactive
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('SDES only allowed crypto suites, but not offered',
|
|
{ 'rtpp-flags' => 'SDES-only-AES_CM_128_HMAC_SHA1_80 ICE=remove DTLS=off replace-origin strict-source label=caller address-family=IP4 transport-protocol=RTP/SAVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2000 RTP/SAVP 0
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:cJOJ7kxQjhFBp2fP6AYjs3vKw7CeBdWZCj0isbJv
|
|
a=crypto:2 AES_256_CM_HMAC_SHA1_80 inline:8AbZePWwsKhLGX3GlXA+yHYPQ3cgraer/9DkFJYCOPZZy3o9wC0NIbIFYZfyHw==
|
|
a=crypto:3 AES_256_CM_HMAC_SHA1_32 inline:2GLk3p/csdno4KlGO1TxCVaEt+bifmDlQ5NjnCb5cJYPURiGRSTBEtEq37db8g==
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/SAVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128
|
|
SDP
|
|
|
|
answer('SDES only allowed crypto suites, but not offered',
|
|
{ 'rtpp-flags' => 'ICE=remove replace-origin strict-source label=callee address-family=IP4 transport-protocol=RTP/SAVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.3
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2002 RTP/SAVP 0
|
|
c=IN IP4 198.51.100.3
|
|
a=sendrecv
|
|
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:dfgadgdfgdfgdfgd6AYjs3vKw7CeBdWZCj0isbJv
|
|
--------------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/SAVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128
|
|
SDP
|
|
|
|
|
|
new_call();
|
|
|
|
offer('forward T.38 invite without codecs given',
|
|
{ 'rtpp-flags' => 'T.38-decode ICE=remove DTLS=off replace-origin strict-source label=caller address-family=IP4 transport-protocol=RTP/AVP' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=image 6000 udptl t38
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
a=T38FaxVersion:0
|
|
a=T38MaxBitRate:14400
|
|
a=T38FaxRateManagement:transferredTCF
|
|
a=T38FaxMaxBuffer:262
|
|
a=T38FaxMaxDatagram:300
|
|
a=T38FaxUdpEC:t38UDPRedundancy
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0 8
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=rtpmap:8 PCMA/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('direction', { 'rtpp-flags' => 'direction=foo direction=bar' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2000 RTP/AVP 0
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.8
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
answer('direction', { }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.3
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2002 RTP/AVP 0
|
|
c=IN IP4 198.51.100.3
|
|
a=sendrecv
|
|
--------------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.3
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.7
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('direction obj', { 'rtpp-flags' => 'direction=[foo bar]' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2000 RTP/AVP 0
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.8
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
answer('direction obj', { }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.3
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2002 RTP/AVP 0
|
|
c=IN IP4 198.51.100.3
|
|
a=sendrecv
|
|
--------------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.3
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.7
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('int/ext', { 'rtpp-flags' => 'internal external' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2000 RTP/AVP 0
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP6 2001:db8:4321::1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
answer('direction', { }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.3
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2002 RTP/AVP 0
|
|
c=IN IP6 2001:db8:4321::7
|
|
a=sendrecv
|
|
--------------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.3
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('sdp-attr delete', { 'rtpp-flags' => 'SDP-attr=[audio=[remove=[test]]]' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2000 RTP/AVP 0
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
a=test
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('sdp-attr combination', { 'rtpp-flags' => 'replace=[origin] SDP-attr=[audio=[remove=[test] add=[foo bar]] global=[remove=[quux]]] rtcp-mux=[offer]' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
a=quux
|
|
m=audio 2000 RTP/AVP 0
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
a=test
|
|
a=quux
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=quux
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
a=rtcp-mux
|
|
a=foo
|
|
a=bar
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('int-str', { 'rtpp-flags' => 'digit=3 frequency=344 frequencies=[123]' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio 2000 RTP/AVP 0
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
SDP
|
|
|
|
new_call;
|
|
|
|
offer('malformed syntax', { 'rtpp-flags' => 'replace=[ origin ] SDP-attr= [audio=[ remove = [ test ] add = [foo bar]] global=[remove=[quux]]] rtcp-mux=[offer]' }, <<SDP);
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 198.51.100.1
|
|
s=tester
|
|
t=0 0
|
|
a=quux
|
|
m=audio 2000 RTP/AVP 0
|
|
c=IN IP4 198.51.100.1
|
|
a=sendrecv
|
|
a=test
|
|
a=quux
|
|
----------------------------------
|
|
v=0
|
|
o=- 1545997027 1 IN IP4 203.0.113.1
|
|
s=tester
|
|
t=0 0
|
|
a=quux
|
|
m=audio PORT RTP/AVP 0
|
|
c=IN IP4 203.0.113.1
|
|
a=rtpmap:0 PCMU/8000
|
|
a=test
|
|
a=quux
|
|
a=sendrecv
|
|
a=rtcp:PORT
|
|
a=rtcp-mux
|
|
SDP
|
|
|
|
|
|
#done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit;
|
|
done_testing();
|