Brekeke SIP Server drops RTP Packets (H.264 stream).
Moderator: Brekeke Support Team
Brekeke SIP Server drops RTP Packets (H.264 stream).
1. Brekeke Product Name and Version:
SIP Server 3.3.4.4/379
2. Java version:
1.8.0_05
3. OS type and the version:
Windows Server 2008 R2, 6.1
4. UA (phone), gateway or other hardware/software involved:
TANDBERG C20
5. Your problem:
SIP Server started on RTP relay option and local UA(A) send
H.264 RTP stream to remote UA(B) thru the SIP Server.
When I captured all RTP Stream In SIP Server by wireshark,
All RTP Packets from local UA(A) arrived at SIP Server.
But when SIP Server relay this RTP Packets to remote UA(B),
SIP Server don't send(or drop) some(2~3%) of RTP Packets.
I think a delta and jitter value of the H.264 RTP Stream is all OK.
I don't understand why SIP Server don't send or drop RTP Packets in my condition.
Is Threre any rule to drop RTP Packet in SIP Server?
SIP Server 3.3.4.4/379
2. Java version:
1.8.0_05
3. OS type and the version:
Windows Server 2008 R2, 6.1
4. UA (phone), gateway or other hardware/software involved:
TANDBERG C20
5. Your problem:
SIP Server started on RTP relay option and local UA(A) send
H.264 RTP stream to remote UA(B) thru the SIP Server.
When I captured all RTP Stream In SIP Server by wireshark,
All RTP Packets from local UA(A) arrived at SIP Server.
But when SIP Server relay this RTP Packets to remote UA(B),
SIP Server don't send(or drop) some(2~3%) of RTP Packets.
I think a delta and jitter value of the H.264 RTP Stream is all OK.
I don't understand why SIP Server don't send or drop RTP Packets in my condition.
Is Threre any rule to drop RTP Packet in SIP Server?
semin kim
Let you tune the "net.rtp.video.size" in the [Configuration]->[Advanced] page.
It is the receiving buffer for Video packet and the default value is "2600" (byte).
For example:
-------------------------------
net.rtp.video.size = 3000
-------------------------------
Even if you don't have the above setting, the SIP Server adjusts the size of the buffer automatically if there are larger packets but some larger packets might be rejected until the automatic adjustment is done.
If the same issue happens even if you have the above setting, it will be another reason. If so, paste the SDP here.
It is the receiving buffer for Video packet and the default value is "2600" (byte).
For example:
-------------------------------
net.rtp.video.size = 3000
-------------------------------
Even if you don't have the above setting, the SIP Server adjusts the size of the buffer automatically if there are larger packets but some larger packets might be rejected until the automatic adjustment is done.
If the same issue happens even if you have the above setting, it will be another reason. If so, paste the SDP here.
Increasing buffer size have a effect on reducing packet drop in version 3.3xxx. but it have no effect in version 2.4.8.6 stadard edition.
here is SDP
o=4002 0 0 IN IP4 192.168.1.30
s=UA Call
c=IN IP4 192.168.1.30
b=AS:1500
t=0 0
m=audio 20098 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
m=video 20070 RTP/AVP 109
a=content:main
a=rtpmap:109 H264/90000
a=fmtp:109 profile-level-id=42e01f;packetization-mode=1;max-mbps=108000;max-fs=3600;max-dpb=6750;max-br=1250
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=sendrecv
here is SDP
o=4002 0 0 IN IP4 192.168.1.30
s=UA Call
c=IN IP4 192.168.1.30
b=AS:1500
t=0 0
m=audio 20098 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
m=video 20070 RTP/AVP 109
a=content:main
a=rtpmap:109 H264/90000
a=fmtp:109 profile-level-id=42e01f;packetization-mode=1;max-mbps=108000;max-fs=3600;max-dpb=6750;max-br=1250
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=sendrecv
semin kim
Even if I increase video buffer size to big(80000Byte), it have no effect on reducing packet drop.
Sip server version is a 3.3.4.4 advanced in my customer site.
Is there any other rule to drop RTP packet in SIP Server?
SDP below
o=tandberg 21 2 IN IP4 150.100.1.204
s=-
c=IN IP4 150.50.59.21
b=AS:1400
t=0 0
m=audio 2354 RTP/AVP 0 101
b=TIAS:64000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
m=video 2356 RTP/AVP 109
b=TIAS:1400000
a=rtpmap:109 H264/90000
a=fmtp:109 profile-level-id=428016;max-br=5000;max-mbps=490000;max-fs=9000;max-smbps=490000;packetization-mode=1;max-fps=6000;max-rcmd-nalu-size=3456000
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=rtcp-fb:* ccm tmmbr
a=sendrecv
a=content:main
a=label:11
m=application 5070 UDP/BFCP *
a=floorctrl:s-only
a=confid:1
a=floorid:2 mstrm:12
a=userid:21
a=setup:passive
a=connection:new
m=video 2358 RTP/AVP 109
b=TIAS:1400000
a=rtpmap:109 H264/90000
a=fmtp:109 profile-level-id=42800d;max-br=1666;max-mbps=122500;max-fs=8160;max-smbps=122500;max-fps=3000;max-rcmd-nalu-size=3133440
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=rtcp-fb:* ccm tmmbr
a=sendrecv
a=content:slides
a=label:12
Sip server version is a 3.3.4.4 advanced in my customer site.
Is there any other rule to drop RTP packet in SIP Server?
SDP below
o=tandberg 21 2 IN IP4 150.100.1.204
s=-
c=IN IP4 150.50.59.21
b=AS:1400
t=0 0
m=audio 2354 RTP/AVP 0 101
b=TIAS:64000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
m=video 2356 RTP/AVP 109
b=TIAS:1400000
a=rtpmap:109 H264/90000
a=fmtp:109 profile-level-id=428016;max-br=5000;max-mbps=490000;max-fs=9000;max-smbps=490000;packetization-mode=1;max-fps=6000;max-rcmd-nalu-size=3456000
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=rtcp-fb:* ccm tmmbr
a=sendrecv
a=content:main
a=label:11
m=application 5070 UDP/BFCP *
a=floorctrl:s-only
a=confid:1
a=floorid:2 mstrm:12
a=userid:21
a=setup:passive
a=connection:new
m=video 2358 RTP/AVP 109
b=TIAS:1400000
a=rtpmap:109 H264/90000
a=fmtp:109 profile-level-id=42800d;max-br=1666;max-mbps=122500;max-fs=8160;max-smbps=122500;max-fps=3000;max-rcmd-nalu-size=3133440
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=rtcp-fb:* ccm tmmbr
a=sendrecv
a=content:slides
a=label:12
semin kim
when conference server received SDP from tandberg(sx20), conference server transmit RTP Video stream to tandberg thru SIP Server(RTP relay).
SIP Server have received all rtp video packets from conference server
but SIP Server droped some RTP video packets(5~10%) of all packets received when SIP server relay the packets.
I checked above the fact by capturing rtp packet thru wireshark in SIP Server machine.
SIP Server and conference server is located in same 10G LAN.
conference server transmit just two RTP Stream(video:1.3mbps/audio:64kbps) to SIP Server when I tested it.
RTP Packets relayed by SIP Server might be lost in public network but I don't understand Why SIP Server can't relay all RTP Packet received.
SIP Server have received all rtp video packets from conference server
but SIP Server droped some RTP video packets(5~10%) of all packets received when SIP server relay the packets.
I checked above the fact by capturing rtp packet thru wireshark in SIP Server machine.
SIP Server and conference server is located in same 10G LAN.
conference server transmit just two RTP Stream(video:1.3mbps/audio:64kbps) to SIP Server when I tested it.
RTP Packets relayed by SIP Server might be lost in public network but I don't understand Why SIP Server can't relay all RTP Packet received.
semin kim
For writing log from the RTP-relay, put the following line in the [Configuration]->[Advanced] page.
----------------------------
net.rtp.loglevel.file=255
----------------------------
After you reproduce the issue, open the log file.
C:\Program Files\Brekeke\sip\webapps\sip\WEB-INF\work\sv\log\2014\07\sv.xxxx.log
And find the line which contains the following string.
close: total.pkt=
It is the number of total received RTP packets per media stream.
If it is less than the actual number, the receiving-buffer could not handle the traffic.
Are you using 64bit OS and 64bit edition of Java?
if not, let you use 64bit environment.
----------------------------
net.rtp.loglevel.file=255
----------------------------
After you reproduce the issue, open the log file.
C:\Program Files\Brekeke\sip\webapps\sip\WEB-INF\work\sv\log\2014\07\sv.xxxx.log
And find the line which contains the following string.
close: total.pkt=
It is the number of total received RTP packets per media stream.
If it is less than the actual number, the receiving-buffer could not handle the traffic.
Are you using 64bit OS and 64bit edition of Java?
if not, let you use 64bit environment.
Log result is below. What is it mean?
rtp.10006: close: total.pkt=0 packet/sec=0
rtp.10004: close: total.pkt=2 packet/sec=0
rtp.10002: close: total.pkt=1271 packet/sec=84
rtp.10000: close: total.pkt=622 packet/sec=41
rtp.10014: close: total.pkt=0 packet/sec=0
rtp.10012: close: total.pkt=1 packet/sec=0
rtp.10010: close: total.pkt=1845 packet/sec=153
rtp.10008: close: total.pkt=550 packet/sec=45
Java is jre 7 update 60 and 64bit.
If conference make video stream of 1.3mbps/720p/30fps,
Frame size transmitted by conference server is 8KB(nornal)~40KB(keyframe) per 33ms.
If frame is made and transmitted to sip server, 40KB~8KB frame might be arrive at sip server within 2~3ms.
I wonder whether Brekeke SIP Server can relay Video RTP Stream in this condition.
rtp.10006: close: total.pkt=0 packet/sec=0
rtp.10004: close: total.pkt=2 packet/sec=0
rtp.10002: close: total.pkt=1271 packet/sec=84
rtp.10000: close: total.pkt=622 packet/sec=41
rtp.10014: close: total.pkt=0 packet/sec=0
rtp.10012: close: total.pkt=1 packet/sec=0
rtp.10010: close: total.pkt=1845 packet/sec=153
rtp.10008: close: total.pkt=550 packet/sec=45
Java is jre 7 update 60 and 64bit.
If conference make video stream of 1.3mbps/720p/30fps,
Frame size transmitted by conference server is 8KB(nornal)~40KB(keyframe) per 33ms.
If frame is made and transmitted to sip server, 40KB~8KB frame might be arrive at sip server within 2~3ms.
I wonder whether Brekeke SIP Server can relay Video RTP Stream in this condition.
semin kim