mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-11-02 13:03:33 +00:00
In codecs_same(), do not compare the complete audio_name. The parts of it are
already checked individually:
- subtype_name ("AMR"),
- rate ("8000"; defaults to 8000 if omitted) and
- channels ("1"; defaults to 1 if omitted)
So by also checking the complete audio_name, we brushed over the match of
implicit "/8000" and "/8000/1", which otherwise works out fine.
As a result, translating payload type numbers in RTP headers now also works if
one conn of an endpoint set an rtpmap with "AMR/8000" and the other conn set
"AMR/8000/1".
It seems to me that most PBX out there generate ptmaps omitting the "/1", so
fixing this should make us more interoperable with third party SDP.
See IETF RFC4566 section 6. SDP Attributes:
For audio streams, <encoding parameters> indicates the number
of audio channels. This parameter is OPTIONAL and may be
omitted if the number of channels is one, provided that no
additional parameters are needed.
Also allowing to omit the "/8000" is a mere side effect of this patch.
Omitting the rate does not seem to be specified in an RFC, but is logical for
audio codecs defined to require exactly 8000 set as rate (most GSM codecs).
Add tests in mgcp_test.c.
Change-Id: Iab00bf9a55b1847f85999077114b37e70fb677c2
1373 lines
42 KiB
Plaintext
1373 lines
42 KiB
Plaintext
line: 'one CR'
|
|
line: 'two CR'
|
|
line: ''
|
|
line: 'one CRLF'
|
|
line: 'two CRLF'
|
|
line: ''
|
|
line: 'one LF'
|
|
line: 'two LF'
|
|
line: ''
|
|
line: 'mixed (4 lines)'
|
|
line: ''
|
|
line: ''
|
|
line: ''
|
|
|
|
================================================
|
|
Testing AUEP1
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
AUEP 158663169 ds/e1-1/2@mgw MGCP 1.0
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing AUEP2
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
AUEP 18983213 ds/e1-2/1@mgw MGCP 1.0
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing MDCX1
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983213 ds/e1-3/1@mgw MGCP 1.0
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing MDCX2
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983214 ds/e1-1/2@mgw MGCP 1.0
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing CRCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 1@mgw MGCP 1.0
|
|
m: recvonly
|
|
C: 2
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 97
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing MDCX3
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983215 1@mgw MGCP 1.0
|
|
I: %s
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing MDCX4
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983216 1@mgw MGCP 1.0
|
|
M: sendrecv
|
|
C: 2
|
|
I: %s
|
|
L: p:20, a:AMR, nt:IN
|
|
|
|
v=0
|
|
o=- %s 23 IN IP4 0.0.0.0
|
|
c=IN IP4 0.0.0.0
|
|
t=0 0
|
|
m=audio 4441 RTP/AVP 99
|
|
a=rtpmap:99 AMR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing MDCX4_PT1
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983217 1@mgw MGCP 1.0
|
|
M: SENDRECV
|
|
C: 2
|
|
I: %s
|
|
L: p:20-40, a:AMR, nt:IN
|
|
|
|
v=0
|
|
o=- %s 23 IN IP4 0.0.0.0
|
|
c=IN IP4 0.0.0.0
|
|
t=0 0
|
|
m=audio 4441 RTP/AVP 99
|
|
a=rtpmap:99 AMR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing MDCX4_PT2
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983218 1@mgw MGCP 1.0
|
|
M: sendrecv
|
|
C: 2
|
|
I: %s
|
|
L: p:20-20, a:AMR, nt:IN
|
|
|
|
v=0
|
|
o=- %s 23 IN IP4 0.0.0.0
|
|
c=IN IP4 0.0.0.0
|
|
t=0 0
|
|
m=audio 4441 RTP/AVP 99
|
|
a=rtpmap:99 AMR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing MDCX4_PT3
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983219 1@mgw MGCP 1.0
|
|
M: sendrecv
|
|
C: 2
|
|
I: %s
|
|
L: a:AMR, nt:IN
|
|
|
|
v=0
|
|
o=- %s 23 IN IP4 0.0.0.0
|
|
c=IN IP4 0.0.0.0
|
|
t=0 0
|
|
m=audio 4441 RTP/AVP 99
|
|
a=rtpmap:99 AMR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing MDCX4_PT4
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983220 1@mgw MGCP 1.0
|
|
m: sendrecv
|
|
c: 2
|
|
i: %s
|
|
l: A:amr, NT:IN
|
|
|
|
v=0
|
|
o=- %s 23 IN IP4 0.0.0.0
|
|
c=IN IP4 0.0.0.0
|
|
t=0 0
|
|
m=audio 4441 RTP/AVP 99
|
|
a=rtpmap:99 AMR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing MDCX4_SO
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983221 1@mgw MGCP 1.0
|
|
M: sendonly
|
|
C: 2
|
|
I: %s
|
|
L: p:20, a:AMR, nt:IN
|
|
|
|
v=0
|
|
o=- %s 23 IN IP4 0.0.0.0
|
|
c=IN IP4 0.0.0.0
|
|
t=0 0
|
|
m=audio 4441 RTP/AVP 99
|
|
a=rtpmap:99 AMR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
|
|
================================================
|
|
Testing MDCX4_RO
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983222 1@mgw MGCP 1.0
|
|
M: recvonly
|
|
C: 2
|
|
I: %s
|
|
L: p:20, a:AMR, nt:IN
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing DLCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
DLCX 7 1@mgw MGCP 1.0
|
|
I: %s
|
|
C: 2
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing CRCX_ZYN
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 1@mgw MGCP 1.0
|
|
M: recvonly
|
|
C: 2
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 97
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing EMPTY
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
|
|
|
|
---------8<---------
|
|
|
|
================================================
|
|
Testing SHORT1
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing SHORT2
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 1
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing SHORT3
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 1 1@mgw
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing SHORT4
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 1 1@mgw MGCP
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing RQNT1
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
RQNT 186908780 1@mgw MGCP 1.0
|
|
X: B244F267488
|
|
S: D/9
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing RQNT2
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
RQNT 186908781 1@mgw MGCP 1.0
|
|
X: ADD4F26746F
|
|
R: D/[0-9#*](N), G/ft, fxr/t38
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing DLCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
DLCX 7 1@mgw MGCP 1.0
|
|
I: %s
|
|
C: 2
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing CRCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 1@mgw MGCP 1.0
|
|
m: recvonly
|
|
C: 2
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 97
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing MDCX3
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983215 1@mgw MGCP 1.0
|
|
I: %s
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing DLCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
DLCX 7 1@mgw MGCP 1.0
|
|
I: %s
|
|
C: 2
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing CRCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 6@mgw MGCP 1.0
|
|
M: recvonly
|
|
C: 2
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing CRCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 1@mgw MGCP 1.0
|
|
M: recvonly
|
|
C: 2
|
|
L: p:20
|
|
X-Osmo-IGN: C foo
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 97
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing MDCX_TOO_LONG_CI
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983223 1@mgw MGCP 1.0
|
|
I: 123456789012345678901234567890123
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
(response does not contain a connection id)
|
|
|
|
================================================
|
|
Testing CRCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 7@mgw MGCP 1.0
|
|
M: recvonly
|
|
C: 2
|
|
X
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 111
|
|
a=rtpmap:111 AMR/8000/1
|
|
a=ptime:20
|
|
a=fmtp:111 mode-change-capability=2; octet-align=1
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
(response contains a connection id)
|
|
Dummy packets: 2
|
|
|
|
================================================
|
|
Testing CRCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 1@mgw MGCP 1.0
|
|
m: recvonly
|
|
C: 2
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 97
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
Re-transmitting CRCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 1@mgw MGCP 1.0
|
|
m: recvonly
|
|
C: 2
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 97
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
|
|
================================================
|
|
Testing RQNT1
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
RQNT 186908780 1@mgw MGCP 1.0
|
|
X: B244F267488
|
|
S: D/9
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
Re-transmitting RQNT1
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
RQNT 186908780 1@mgw MGCP 1.0
|
|
X: B244F267488
|
|
S: D/9
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
|
|
================================================
|
|
Testing RQNT2
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
RQNT 186908781 1@mgw MGCP 1.0
|
|
X: ADD4F26746F
|
|
R: D/[0-9#*](N), G/ft, fxr/t38
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
Re-transmitting RQNT2
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
RQNT 186908781 1@mgw MGCP 1.0
|
|
X: ADD4F26746F
|
|
R: D/[0-9#*](N), G/ft, fxr/t38
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
|
|
================================================
|
|
Testing MDCX3
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983215 1@mgw MGCP 1.0
|
|
I: %s
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
Re-transmitting MDCX3
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 18983215 1@mgw MGCP 1.0
|
|
I: %s
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
|
|
================================================
|
|
Testing DLCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
DLCX 7 1@mgw MGCP 1.0
|
|
I: %s
|
|
C: 2
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
Re-transmitting DLCX
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
DLCX 7 1@mgw MGCP 1.0
|
|
I: %s
|
|
C: 2
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message as statically defined for comparison
|
|
Response matches our expectations.
|
|
Testing packet loss calculation.
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 1@mgw MGCP 1.0
|
|
m: recvonly
|
|
C: 2
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 97
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
RQNT 186908780 1@mgw MGCP 1.0
|
|
X: B244F267488
|
|
S: D/9
|
|
|
|
---------8<---------
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
DLCX 7 1@mgw MGCP 1.0
|
|
I: %s
|
|
C: 2
|
|
|
|
---------8<---------
|
|
Testing stat parsing
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
250 7 OK
|
|
P: PS=0, OS=0, PR=0, OR=0, PL=0, JI=0
|
|
|
|
---------8<---------
|
|
Parsing result: 0
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
250 7 OK
|
|
P: PS=10, OS=20, PR=30, OR=40, PL=-3, JI=40
|
|
|
|
---------8<---------
|
|
Parsing result: 0
|
|
Testing packet error detection, patch SSRC.
|
|
Output SSRC changed to 11223344
|
|
In TS: 0, dTS: 0, Seq: 0
|
|
Out TS change: 0, dTS: 0, Seq change: 0, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 160, dTS: 160, Seq: 1
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 320, dTS: 160, Seq: 2
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 320, dTS: 160, Seq: 3
|
|
Out TS change: 0, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 10, Transit = 160
|
|
In TS: 480, dTS: 160, Seq: 4
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 9, Transit = 160
|
|
In TS: 640, dTS: 160, Seq: 5
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 8, Transit = 160
|
|
In TS: 960, dTS: 320, Seq: 6
|
|
Out TS change: 320, dTS: 320, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 18, Transit = 0
|
|
In TS: 1120, dTS: 160, Seq: 7
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 17, Transit = 0
|
|
In TS: 1280, dTS: 160, Seq: 8
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 16, Transit = 0
|
|
In TS: 1400, dTS: 120, Seq: 9
|
|
Out TS change: 120, dTS: 120, Seq change: 1, TS Err change: in +1, out +1
|
|
Stats: Jitter = 17, Transit = 40
|
|
In TS: 1560, dTS: 160, Seq: 10
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 16, Transit = 40
|
|
In TS: 1720, dTS: 160, Seq: 11
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 15, Transit = 40
|
|
In TS: 34688, dTS: 0, Seq: 12
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 34848, dTS: 160, Seq: 13
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 35008, dTS: 160, Seq: 14
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 35128, dTS: 120, Seq: 15
|
|
Out TS change: 120, dTS: 120, Seq change: 1, TS Err change: in +1, out +1
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35288, dTS: 160, Seq: 16
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35448, dTS: 160, Seq: 17
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35768, dTS: 160, Seq: 19
|
|
Out TS change: 320, dTS: 160, Seq change: 2, TS Err change: in +0, out +0
|
|
Stats: Jitter = 12, Transit = -32888
|
|
In TS: 35928, dTS: 160, Seq: 20
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 11, Transit = -32888
|
|
In TS: 36088, dTS: 160, Seq: 21
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 20, Transit = -33048
|
|
In TS: 36088, dTS: 160, Seq: 21
|
|
Out TS change: 0, dTS: 160, Seq change: 0, TS Err change: in +0, out +0
|
|
Stats: Jitter = 29, Transit = -32888
|
|
In TS: 36248, dTS: 160, Seq: 22
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 27, Transit = -32888
|
|
In TS: 36408, dTS: 160, Seq: 23
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 25, Transit = -32888
|
|
In TS: 36568, dTS: 160, Seq: 23
|
|
Out TS change: 160, dTS: 160, Seq change: 0, TS Err change: in +1, out +1
|
|
Stats: Jitter = 24, Transit = -32888
|
|
In TS: 36728, dTS: 160, Seq: 24
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 22, Transit = -32888
|
|
In TS: 36888, dTS: 160, Seq: 25
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 21, Transit = -32888
|
|
In TS: 160000, dTS: 0, Seq: 1000
|
|
Out TS change: 12000, dTS: 12000, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
In TS: 160160, dTS: 160, Seq: 1001
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
In TS: 160320, dTS: 160, Seq: 1002
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
Testing packet error detection.
|
|
Output SSRC changed to 11223344
|
|
In TS: 0, dTS: 0, Seq: 0
|
|
Out TS change: 0, dTS: 0, Seq change: 0, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 160, dTS: 160, Seq: 1
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 320, dTS: 160, Seq: 2
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 320, dTS: 160, Seq: 3
|
|
Out TS change: 0, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 10, Transit = 160
|
|
In TS: 480, dTS: 160, Seq: 4
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 9, Transit = 160
|
|
In TS: 640, dTS: 160, Seq: 5
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 8, Transit = 160
|
|
In TS: 960, dTS: 320, Seq: 6
|
|
Out TS change: 320, dTS: 320, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 18, Transit = 0
|
|
In TS: 1120, dTS: 160, Seq: 7
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 17, Transit = 0
|
|
In TS: 1280, dTS: 160, Seq: 8
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 16, Transit = 0
|
|
In TS: 1400, dTS: 120, Seq: 9
|
|
Out TS change: 120, dTS: 120, Seq change: 1, TS Err change: in +1, out +1
|
|
Stats: Jitter = 17, Transit = 40
|
|
In TS: 1560, dTS: 160, Seq: 10
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 16, Transit = 40
|
|
In TS: 1720, dTS: 160, Seq: 11
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 15, Transit = 40
|
|
Output SSRC changed to 10203040
|
|
In TS: 34688, dTS: 0, Seq: 12
|
|
Out TS change: 32968, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 34848, dTS: 160, Seq: 13
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 35008, dTS: 160, Seq: 14
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 35128, dTS: 120, Seq: 15
|
|
Out TS change: 120, dTS: 120, Seq change: 1, TS Err change: in +1, out +1
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35288, dTS: 160, Seq: 16
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35448, dTS: 160, Seq: 17
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35768, dTS: 160, Seq: 19
|
|
Out TS change: 320, dTS: 160, Seq change: 2, TS Err change: in +0, out +0
|
|
Stats: Jitter = 12, Transit = -32888
|
|
In TS: 35928, dTS: 160, Seq: 20
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 11, Transit = -32888
|
|
In TS: 36088, dTS: 160, Seq: 21
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 20, Transit = -33048
|
|
In TS: 36088, dTS: 160, Seq: 21
|
|
Out TS change: 0, dTS: 160, Seq change: 0, TS Err change: in +0, out +0
|
|
Stats: Jitter = 29, Transit = -32888
|
|
In TS: 36248, dTS: 160, Seq: 22
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 27, Transit = -32888
|
|
In TS: 36408, dTS: 160, Seq: 23
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 25, Transit = -32888
|
|
In TS: 36568, dTS: 160, Seq: 23
|
|
Out TS change: 160, dTS: 160, Seq change: 0, TS Err change: in +1, out +1
|
|
Stats: Jitter = 24, Transit = -32888
|
|
In TS: 36728, dTS: 160, Seq: 24
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 22, Transit = -32888
|
|
In TS: 36888, dTS: 160, Seq: 25
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 21, Transit = -32888
|
|
Output SSRC changed to 50607080
|
|
In TS: 160000, dTS: 0, Seq: 1000
|
|
Out TS change: 123112, dTS: 160, Seq change: 975, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
In TS: 160160, dTS: 160, Seq: 1001
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
In TS: 160320, dTS: 160, Seq: 1002
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
Testing packet error detection, patch timestamps.
|
|
Output SSRC changed to 11223344
|
|
In TS: 0, dTS: 0, Seq: 0
|
|
Out TS change: 0, dTS: 0, Seq change: 0, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 160, dTS: 160, Seq: 1
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 320, dTS: 160, Seq: 2
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 320, dTS: 160, Seq: 3
|
|
Out TS change: 0, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 10, Transit = 160
|
|
In TS: 480, dTS: 160, Seq: 4
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 9, Transit = 160
|
|
In TS: 640, dTS: 160, Seq: 5
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 8, Transit = 160
|
|
In TS: 960, dTS: 320, Seq: 6
|
|
Out TS change: 320, dTS: 320, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 18, Transit = 0
|
|
In TS: 1120, dTS: 160, Seq: 7
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 17, Transit = 0
|
|
In TS: 1280, dTS: 160, Seq: 8
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 16, Transit = 0
|
|
In TS: 1400, dTS: 120, Seq: 9
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +1, out +0
|
|
Stats: Jitter = 17, Transit = 40
|
|
In TS: 1560, dTS: 160, Seq: 10
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 16, Transit = 40
|
|
In TS: 1720, dTS: 160, Seq: 11
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 15, Transit = 40
|
|
Output SSRC changed to 10203040
|
|
In TS: 34688, dTS: 0, Seq: 12
|
|
Out TS change: 32968, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 34848, dTS: 160, Seq: 13
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 35008, dTS: 160, Seq: 14
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 35128, dTS: 120, Seq: 15
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +1, out +0
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35288, dTS: 160, Seq: 16
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35448, dTS: 160, Seq: 17
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35768, dTS: 160, Seq: 19
|
|
Out TS change: 320, dTS: 160, Seq change: 2, TS Err change: in +0, out +0
|
|
Stats: Jitter = 12, Transit = -32888
|
|
In TS: 35928, dTS: 160, Seq: 20
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 11, Transit = -32888
|
|
In TS: 36088, dTS: 160, Seq: 21
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 20, Transit = -33048
|
|
In TS: 36088, dTS: 160, Seq: 21
|
|
Out TS change: 0, dTS: 160, Seq change: 0, TS Err change: in +0, out +0
|
|
Stats: Jitter = 29, Transit = -32888
|
|
In TS: 36248, dTS: 160, Seq: 22
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 27, Transit = -32888
|
|
In TS: 36408, dTS: 160, Seq: 23
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 25, Transit = -32888
|
|
In TS: 36568, dTS: 160, Seq: 23
|
|
Out TS change: 160, dTS: 160, Seq change: 0, TS Err change: in +1, out +1
|
|
Stats: Jitter = 24, Transit = -32888
|
|
In TS: 36728, dTS: 160, Seq: 24
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 22, Transit = -32888
|
|
In TS: 36888, dTS: 160, Seq: 25
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 21, Transit = -32888
|
|
Output SSRC changed to 50607080
|
|
In TS: 160000, dTS: 0, Seq: 1000
|
|
Out TS change: 123112, dTS: 160, Seq change: 975, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
In TS: 160160, dTS: 160, Seq: 1001
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
In TS: 160320, dTS: 160, Seq: 1002
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
Testing packet error detection, patch SSRC, patch timestamps.
|
|
Output SSRC changed to 11223344
|
|
In TS: 0, dTS: 0, Seq: 0
|
|
Out TS change: 0, dTS: 0, Seq change: 0, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 160, dTS: 160, Seq: 1
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 320, dTS: 160, Seq: 2
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = 0
|
|
In TS: 320, dTS: 160, Seq: 3
|
|
Out TS change: 0, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 10, Transit = 160
|
|
In TS: 480, dTS: 160, Seq: 4
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 9, Transit = 160
|
|
In TS: 640, dTS: 160, Seq: 5
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 8, Transit = 160
|
|
In TS: 960, dTS: 320, Seq: 6
|
|
Out TS change: 320, dTS: 320, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 18, Transit = 0
|
|
In TS: 1120, dTS: 160, Seq: 7
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 17, Transit = 0
|
|
In TS: 1280, dTS: 160, Seq: 8
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 16, Transit = 0
|
|
In TS: 1400, dTS: 120, Seq: 9
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +1, out +0
|
|
Stats: Jitter = 17, Transit = 40
|
|
In TS: 1560, dTS: 160, Seq: 10
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 16, Transit = 40
|
|
In TS: 1720, dTS: 160, Seq: 11
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 15, Transit = 40
|
|
In TS: 34688, dTS: 0, Seq: 12
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 34848, dTS: 160, Seq: 13
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 35008, dTS: 160, Seq: 14
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -32768
|
|
In TS: 35128, dTS: 120, Seq: 15
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +1, out +0
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35288, dTS: 160, Seq: 16
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35448, dTS: 160, Seq: 17
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 2, Transit = -32728
|
|
In TS: 35768, dTS: 160, Seq: 19
|
|
Out TS change: 320, dTS: 160, Seq change: 2, TS Err change: in +0, out +0
|
|
Stats: Jitter = 12, Transit = -32888
|
|
In TS: 35928, dTS: 160, Seq: 20
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 11, Transit = -32888
|
|
In TS: 36088, dTS: 160, Seq: 21
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 20, Transit = -33048
|
|
In TS: 36088, dTS: 160, Seq: 21
|
|
Out TS change: 0, dTS: 160, Seq change: 0, TS Err change: in +0, out +0
|
|
Stats: Jitter = 29, Transit = -32888
|
|
In TS: 36248, dTS: 160, Seq: 22
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 27, Transit = -32888
|
|
In TS: 36408, dTS: 160, Seq: 23
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 25, Transit = -32888
|
|
In TS: 36568, dTS: 160, Seq: 23
|
|
Out TS change: 160, dTS: 160, Seq change: 0, TS Err change: in +1, out +1
|
|
Stats: Jitter = 24, Transit = -32888
|
|
In TS: 36728, dTS: 160, Seq: 24
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 22, Transit = -32888
|
|
In TS: 36888, dTS: 160, Seq: 25
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 21, Transit = -32888
|
|
In TS: 160000, dTS: 0, Seq: 1000
|
|
Out TS change: 12000, dTS: 12000, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
In TS: 160160, dTS: 160, Seq: 1001
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
In TS: 160320, dTS: 160, Seq: 1002
|
|
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
|
|
Stats: Jitter = 0, Transit = -144000
|
|
Testing multiple payload types
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 1@mgw MGCP 1.0
|
|
M: recvonly
|
|
C: 2
|
|
X
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 18 97
|
|
a=rtpmap:18 G729/8000
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 2@mgw MGCP 1.0
|
|
M: recvonly
|
|
C: 2
|
|
X
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 18 97 101
|
|
a=rtpmap:18 G729/8000
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=rtpmap:101 FOO/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 3@mgw MGCP 1.0
|
|
M: recvonly
|
|
C: 2
|
|
X
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP
|
|
a=rtpmap:18 G729/8000
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=rtpmap:101 FOO/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 4@mgw MGCP 1.0
|
|
M: recvonly
|
|
C: 2
|
|
X
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 18
|
|
a=rtpmap:18 G729/8000
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=rtpmap:101 FOO/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 259260421 5@mgw MGCP 1.0
|
|
C: 1355c6041e
|
|
L: p:20, a:GSM, nt:IN
|
|
M: recvonly
|
|
|
|
v=0
|
|
o=- 1439038275 1439038275 IN IP4 192.168.181.247
|
|
s=-
|
|
c=IN IP4 192.168.181.247
|
|
t=0 0
|
|
m=audio 29084 RTP/AVP 0 8 3 18 4 96 97 101
|
|
a=rtpmap:0 PCMU/8000
|
|
a=rtpmap:8 PCMA/8000
|
|
a=rtpmap:3 gsm/8000
|
|
a=rtpmap:18 G729/8000
|
|
a=fmtp:18 annexb=no
|
|
a=rtpmap:4 G723/8000
|
|
a=rtpmap:96 iLBC/8000
|
|
a=fmtp:96 mode=20
|
|
a=rtpmap:97 iLBC/8000
|
|
a=fmtp:97 mode=30
|
|
a=rtpmap:101 telephone-event/8000
|
|
a=fmtp:101 0-15
|
|
a=recvonly
|
|
|
|
---------8<---------
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
MDCX 23 5@mgw MGCP 1.0
|
|
C: 1355c6041e
|
|
I: %s
|
|
|
|
c=IN IP4 8.8.8.8
|
|
m=audio 16434 RTP/AVP 3
|
|
|
|
---------8<---------
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 259260421 5@mgw MGCP 1.0
|
|
C: 1355c6041e
|
|
L: p:20, a:GSM, nt:IN
|
|
M: recvonly
|
|
|
|
v=0
|
|
o=- 1439038275 1439038275 IN IP4 192.168.181.247
|
|
s=-
|
|
c=IN IP4 192.168.181.247
|
|
t=0 0
|
|
m=audio 29084 RTP/AVP 0 8 3 18 4 96 97 101
|
|
a=rtpmap:0 PCMU/8000
|
|
a=rtpmap:8 PCMA/8000
|
|
a=rtpmap:3 gsm/8000
|
|
a=rtpmap:18 G729/8000
|
|
a=fmtp:18 annexb=no
|
|
a=rtpmap:4 G723/8000
|
|
a=rtpmap:96 iLBC/8000
|
|
a=fmtp:96 mode=20
|
|
a=rtpmap:97 iLBC/8000
|
|
a=fmtp:97 mode=30
|
|
a=rtpmap:101 telephone-event/8000
|
|
a=fmtp:101 0-15
|
|
a=recvonly
|
|
|
|
---------8<---------
|
|
Testing no sequence flow on initial packet
|
|
Testing no rtpmap name
|
|
creating message from statically defined input:
|
|
---------8<---------
|
|
CRCX 2 1@mgw MGCP 1.0
|
|
m: recvonly
|
|
C: 2
|
|
L: p:20
|
|
|
|
v=0
|
|
c=IN IP4 123.12.12.123
|
|
m=audio 5904 RTP/AVP 97
|
|
a=rtpmap:97 GSM-EFR/8000
|
|
a=ptime:40
|
|
|
|
---------8<---------
|
|
checking response:
|
|
using message with patched conn_id for comparison
|
|
Response matches our expectations.
|
|
Testing get_lco_identifier()
|
|
p:10, a:PCMU -> p:10, a:PCMU
|
|
p:10, a:PCMU -> p:10, a:PCMU
|
|
'XXXX, p:10, a:PCMU' -> 'p:10, a:PCMU'
|
|
'XXXX,p:10,a:PCMU' -> 'p:10,a:PCMU'
|
|
'10,a:PCMU' -> 'a:PCMU'
|
|
'10, a:PCMU' -> 'a:PCMU'
|
|
'10,a: PCMU' -> 'a: PCMU'
|
|
'10 ,a: PCMU' -> 'a: PCMU'
|
|
', a:PCMU' -> 'a:PCMU'
|
|
' a:PCMU' -> 'a:PCMU'
|
|
'' -> '(null)'
|
|
p10, aPCMU -> (null)
|
|
'10,a :PCMU' -> '(null)'
|
|
|
|
Testing mgcp_codec_pt_translate()
|
|
#0: same order, but differing payload type numbers
|
|
- add codecs on conn0:
|
|
0: 112 AMR/8000/1 octet-aligned=1 -> rc=0
|
|
1: 0 PCMU/8000/1 -> rc=0
|
|
2: 111 GSM-HR-08/8000/1 -> rc=0
|
|
- add codecs on conn1:
|
|
0: 96 AMR/8000/1 octet-aligned=1 -> rc=0
|
|
1: 0 PCMU/8000/1 -> rc=0
|
|
2: 97 GSM-HR-08/8000/1 -> rc=0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 112) -> 96
|
|
- mgcp_codec_pt_translate(conn1, conn0, 96) -> 112
|
|
- mgcp_codec_pt_translate(conn0, conn1, 0) -> 0
|
|
- mgcp_codec_pt_translate(conn1, conn0, 0) -> 0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 111) -> 97
|
|
- mgcp_codec_pt_translate(conn1, conn0, 97) -> 111
|
|
- mgcp_codec_pt_translate(conn0, conn1, 123) -> -22
|
|
#1: different order and different payload type numbers
|
|
- add codecs on conn0:
|
|
0: 0 PCMU/8000/1 -> rc=0
|
|
1: 111 GSM-HR-08/8000/1 -> rc=0
|
|
2: 112 AMR/8000/1 octet-aligned=1 -> rc=0
|
|
- add codecs on conn1:
|
|
0: 97 GSM-HR-08/8000/1 -> rc=0
|
|
1: 0 PCMU/8000/1 -> rc=0
|
|
2: 96 AMR/8000/1 octet-aligned=1 -> rc=0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 112) -> 96
|
|
- mgcp_codec_pt_translate(conn1, conn0, 96) -> 112
|
|
- mgcp_codec_pt_translate(conn0, conn1, 0) -> 0
|
|
- mgcp_codec_pt_translate(conn1, conn0, 0) -> 0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 111) -> 97
|
|
- mgcp_codec_pt_translate(conn1, conn0, 97) -> 111
|
|
- mgcp_codec_pt_translate(conn0, conn1, 123) -> -22
|
|
#2: both sides have the same payload_type numbers assigned to differing codecs
|
|
- add codecs on conn0:
|
|
0: 0 PCMU/8000/1 -> rc=0
|
|
1: 96 GSM-HR-08/8000/1 -> rc=0
|
|
2: 97 AMR/8000/1 octet-aligned=1 -> rc=0
|
|
- add codecs on conn1:
|
|
0: 97 GSM-HR-08/8000/1 -> rc=0
|
|
1: 0 PCMU/8000/1 -> rc=0
|
|
2: 96 AMR/8000/1 octet-aligned=1 -> rc=0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 96) -> 97
|
|
- mgcp_codec_pt_translate(conn1, conn0, 97) -> 96
|
|
- mgcp_codec_pt_translate(conn0, conn1, 97) -> 96
|
|
- mgcp_codec_pt_translate(conn1, conn0, 96) -> 97
|
|
- mgcp_codec_pt_translate(conn0, conn1, 0) -> 0
|
|
- mgcp_codec_pt_translate(conn1, conn0, 0) -> 0
|
|
#3: conn0 has no codecs
|
|
- add codecs on conn0:
|
|
(none)
|
|
- add codecs on conn1:
|
|
0: 96 AMR/8000/1 octet-aligned=1 -> rc=0
|
|
1: 0 PCMU/8000/1 -> rc=0
|
|
2: 97 GSM-HR-08/8000/1 -> rc=0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 112) -> -22
|
|
- mgcp_codec_pt_translate(conn0, conn1, 0) -> -22
|
|
- mgcp_codec_pt_translate(conn0, conn1, 111) -> -22
|
|
#4: conn1 has no codecs
|
|
- add codecs on conn0:
|
|
0: 112 AMR/8000/1 octet-aligned=1 -> rc=0
|
|
1: 0 PCMU/8000/1 -> rc=0
|
|
2: 111 GSM-HR-08/8000/1 -> rc=0
|
|
- add codecs on conn1:
|
|
(none)
|
|
- mgcp_codec_pt_translate(conn0, conn1, 112) -> -22
|
|
- mgcp_codec_pt_translate(conn0, conn1, 0) -> -22
|
|
- mgcp_codec_pt_translate(conn0, conn1, 111) -> -22
|
|
#5: test AMR with differing octet-aligned settings
|
|
- add codecs on conn0:
|
|
0: 111 AMR/8000 octet-aligned=1 -> rc=0
|
|
1: 112 AMR/8000 octet-aligned=0 -> rc=0
|
|
- add codecs on conn1:
|
|
0: 122 AMR/8000 octet-aligned=0 -> rc=0
|
|
1: 121 AMR/8000 octet-aligned=1 -> rc=0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 111) -> 121
|
|
- mgcp_codec_pt_translate(conn1, conn0, 121) -> 111
|
|
- mgcp_codec_pt_translate(conn0, conn1, 112) -> 122
|
|
- mgcp_codec_pt_translate(conn1, conn0, 122) -> 112
|
|
#6: test AMR with missing octet-aligned settings (defaults to 0)
|
|
- add codecs on conn0:
|
|
0: 111 AMR/8000 octet-aligned=1 -> rc=0
|
|
1: 112 AMR/8000 octet-aligned=0 -> rc=0
|
|
- add codecs on conn1:
|
|
0: 122 AMR/8000 octet-aligned=unset -> rc=0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 111) -> -22
|
|
- mgcp_codec_pt_translate(conn0, conn1, 112) -> 122
|
|
- mgcp_codec_pt_translate(conn1, conn0, 122) -> 112
|
|
#7: test AMR with NULL param (defaults to 0)
|
|
- add codecs on conn0:
|
|
0: 111 AMR/8000 octet-aligned=1 -> rc=0
|
|
1: 112 AMR/8000 octet-aligned=0 -> rc=0
|
|
- add codecs on conn1:
|
|
0: 122 AMR/8000 -> rc=0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 111) -> -22
|
|
- mgcp_codec_pt_translate(conn0, conn1, 112) -> 122
|
|
- mgcp_codec_pt_translate(conn1, conn0, 122) -> 112
|
|
#8: match FOO/8000/1 and FOO/8000 as identical, single channel is implicit
|
|
- add codecs on conn0:
|
|
0: 0 PCMU/8000/1 -> rc=0
|
|
1: 111 GSM-HR-08/8000/1 -> rc=0
|
|
2: 112 AMR/8000/1 octet-aligned=1 -> rc=0
|
|
- add codecs on conn1:
|
|
0: 97 GSM-HR-08/8000 -> rc=0
|
|
1: 0 PCMU/8000 -> rc=0
|
|
2: 96 AMR/8000 octet-aligned=1 -> rc=0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 112) -> 96
|
|
- mgcp_codec_pt_translate(conn1, conn0, 96) -> 112
|
|
- mgcp_codec_pt_translate(conn0, conn1, 0) -> 0
|
|
- mgcp_codec_pt_translate(conn1, conn0, 0) -> 0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 111) -> 97
|
|
- mgcp_codec_pt_translate(conn1, conn0, 97) -> 111
|
|
- mgcp_codec_pt_translate(conn0, conn1, 123) -> -22
|
|
#9: match FOO/8000/1 and FOO as identical, 8k and single channel are implicit
|
|
- add codecs on conn0:
|
|
0: 0 PCMU/8000/1 -> rc=0
|
|
1: 111 GSM-HR-08/8000/1 -> rc=0
|
|
2: 112 AMR/8000/1 octet-aligned=1 -> rc=0
|
|
- add codecs on conn1:
|
|
0: 97 GSM-HR-08 -> rc=0
|
|
1: 0 PCMU -> rc=0
|
|
2: 96 AMR octet-aligned=1 -> rc=0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 112) -> 96
|
|
- mgcp_codec_pt_translate(conn1, conn0, 96) -> 112
|
|
- mgcp_codec_pt_translate(conn0, conn1, 0) -> 0
|
|
- mgcp_codec_pt_translate(conn1, conn0, 0) -> 0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 111) -> 97
|
|
- mgcp_codec_pt_translate(conn1, conn0, 97) -> 111
|
|
- mgcp_codec_pt_translate(conn0, conn1, 123) -> -22
|
|
#10: test whether channel number matching is waterproof
|
|
- add codecs on conn0:
|
|
0: 111 GSM-HR-08/8000 -> rc=0
|
|
1: 112 GSM-HR-08/8000/2 -> rc=-22
|
|
2: 113 GSM-HR-08/8000/3 -> rc=-22
|
|
- add codecs on conn1:
|
|
0: 122 GSM-HR-08/8000/2 -> rc=-22
|
|
1: 121 GSM-HR-08/8000/1 -> rc=0
|
|
- mgcp_codec_pt_translate(conn0, conn1, 111) -> 121
|
|
- mgcp_codec_pt_translate(conn1, conn0, 121) -> 111
|
|
- mgcp_codec_pt_translate(conn0, conn1, 112) -> -22
|
|
- mgcp_codec_pt_translate(conn0, conn1, 113) -> -22
|
|
|
|
Testing test_conn_id_matching
|
|
needle='23AB' found '000023AB'
|
|
needle='0023AB' found '000023AB'
|
|
needle='000023AB' found '000023AB'
|
|
needle='00000023AB' found '000023AB'
|
|
needle='23ab' found '000023AB'
|
|
needle='0023ab' found '000023AB'
|
|
needle='000023ab' found '000023AB'
|
|
needle='00000023ab' found '000023AB'
|
|
Done
|