Discussion:
[Live-devel] Live555 Proxy Server sometimes does not proxy source after connection loss
Erik Montnemery
2016-09-01 20:23:16 UTC
Permalink
Hi,

Most of the time, the proxy server reconnects to the source after a
loss of connection to a source, but every now and then I observe one
of the following issues:
1) The proxyserver reconnects to the source, but no data frames are
forwarded to the clients.
An example log of scenario 1) is pasted below

2) The proxy server does not reconnect to the source, and clients to
the proxy server are being told:
RTSP/1.0 404 File Not Found, Or In Incorrect Format
An example log of scenario 2) is pasted below

Any suggestions for how to debug this further are most welcome.

I'm able to reproduce the issues by forcing a source to reconnect to
the network, but it's not 100% reproducible.
1) seems much more difficualt to reproduce than 2).

/Erik

Log 1)
Aug 11 09:12:21 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Aug 11 09:12:21 CSeq: 73552
Aug 11 09:12:21 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:12:21 Session: 6B8B4567
Aug 11 09:12:21
Aug 11 09:12:21
Aug 11 09:12:21 Received 156 new bytes of response data.
Aug 11 09:12:21 Received a complete OPTIONS response:
Aug 11 09:12:21 RTSP/1.0 200 OK
Aug 11 09:12:21 CSeq: 73552
Aug 11 09:12:21 Date: Thu, Aug 11 2016 15:14:58 GMT
Aug 11 09:12:21 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Aug 11 09:12:21
Aug 11 09:12:21
<----- Client stops receiving data around here
Aug 11 09:12:29 Sending request: OPTIONS
rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Aug 11 09:12:29 CSeq: 73589
Aug 11 09:12:29 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:12:29 Session: 66334873
Aug 11 09:12:29
Aug 11 09:12:29
Aug 11 09:12:29 Received 156 new bytes of response data.
Aug 11 09:12:29 Received a complete OPTIONS response:
Aug 11 09:12:29 RTSP/1.0 200 OK
Aug 11 09:12:29 CSeq: 73589
Aug 11 09:12:29 Date: Thu, Aug 11 2016 15:15:05 GMT
Aug 11 09:12:29 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Aug 11 09:12:29
Aug 11 09:12:29
<----- A new client is spawned and makes a new connection to the proxy
server here
Aug 11 09:12:51 Opening connection to 192.168.0.124, port 554...
Aug 11 09:12:53
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::closeStreamSource()
Aug 11 09:12:53
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Aug 11 09:12:59 Sending request: OPTIONS
rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Aug 11 09:12:59 CSeq: 73590
Aug 11 09:12:59 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:12:59 Session: 66334873
Aug 11 09:12:59
Aug 11 09:12:59
Aug 11 09:12:59 Received 156 new bytes of response data.
Aug 11 09:12:59 Received a complete OPTIONS response:
Aug 11 09:12:59 RTSP/1.0 200 OK
Aug 11 09:12:59 CSeq: 73590
Aug 11 09:12:59 Date: Thu, Aug 11 2016 15:15:35 GMT
Aug 11 09:12:59 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Aug 11 09:12:59
Aug 11 09:12:59
Aug 11 09:13:06 ...remote connection opened
Aug 11 09:13:06 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Aug 11 09:13:06 CSeq: 73553
Aug 11 09:13:06 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:13:06 Session: 6B8B4567
Aug 11 09:13:06
Aug 11 09:13:06
Aug 11 09:13:06 Sending request: PAUSE rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Aug 11 09:13:06 CSeq: 73554
Aug 11 09:13:06 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:13:06 Session: 6B8B4567
Aug 11 09:13:06
Aug 11 09:13:06
Aug 11 09:13:06 Received 156 new bytes of response data.
Aug 11 09:13:06 Received a complete OPTIONS response:
Aug 11 09:13:06 RTSP/1.0 200 OK
Aug 11 09:13:06 CSeq: 73553
Aug 11 09:13:06 Date: Thu, Jan 01 1970 00:00:37 GMT
Aug 11 09:13:06 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Aug 11 09:13:06
Aug 11 09:13:06
Aug 11 09:13:09
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::createNewStreamSource(session
id 1614683546)
Aug 11 09:13:09 Sending request: PLAY rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Aug 11 09:13:09 CSeq: 73555
Aug 11 09:13:09 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:13:09 Session: 6B8B4567
Aug 11 09:13:09
Aug 11 09:13:09
Aug 11 09:13:09
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::createNewRTPSink()
Aug 11 09:13:09
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 1614683546)
Aug 11 09:13:09
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Aug 11 09:13:09 Received 68 new bytes of response data.
Aug 11 09:13:09 WARNING: The server did not respond to our "PAUSE"
request (CSeq: 73554). The server appears to be buggy (perhaps not
handling pipelined requests properly).
Aug 11 09:13:09 Received a complete PLAY response:
Aug 11 09:13:09 RTSP/1.0 200 OK
Aug 11 09:13:09 CSeq: 73555
Aug 11 09:13:09 Session: 6B8B4567
Aug 11 09:13:09 Range: npt=now-
Aug 11 09:13:09
Aug 11 09:13:09
Aug 11 09:13:09 session 6B8B4567 match 6B8B4567
Aug 11 09:13:09 session 6B8B4567 match 6B8B4567
Aug 11 09:13:09 Enter ProxyRTSPClient::continueAfterPLAY, resultCode0
<----- Client did not receive any data, and closes the connection. A
new client is spawned.
Aug 11 09:13:14
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::closeStreamSource()
Aug 11 09:13:14 Sending request: PAUSE rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Aug 11 09:13:14 CSeq: 73556
Aug 11 09:13:14 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:13:14 Session: 6B8B4567
Aug 11 09:13:14
Aug 11 09:13:14
Aug 11 09:13:14
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Aug 11 09:13:14 Received 88 new bytes of response data.
Aug 11 09:13:14 Received a complete PAUSE response:
Aug 11 09:13:14 RTSP/1.0 200 OK
Aug 11 09:13:14 CSeq: 73556
Aug 11 09:13:14 Date: Thu, Aug 11 2016 15:15:51 GMT
Aug 11 09:13:14 Session: 6B8B4567
Aug 11 09:13:14
Aug 11 09:13:14
Aug 11 09:13:29 Sending request: OPTIONS
rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Aug 11 09:13:29 CSeq: 73591
Aug 11 09:13:29 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:13:29 Session: 66334873
Aug 11 09:13:29
Aug 11 09:13:29
Aug 11 09:13:29 Received 156 new bytes of response data.
Aug 11 09:13:29 Received a complete OPTIONS response:
Aug 11 09:13:29 RTSP/1.0 200 OK
Aug 11 09:13:29 CSeq: 73591
Aug 11 09:13:29 Date: Thu, Aug 11 2016 15:16:05 GMT
Aug 11 09:13:29 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Aug 11 09:13:29
Aug 11 09:13:29
Aug 11 09:13:36 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Aug 11 09:13:36 CSeq: 73557
Aug 11 09:13:36 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:13:36 Session: 6B8B4567
Aug 11 09:13:36
Aug 11 09:13:36
Aug 11 09:13:36 Received 156 new bytes of response data.
Aug 11 09:13:36 Received a complete OPTIONS response:
Aug 11 09:13:36 RTSP/1.0 200 OK
Aug 11 09:13:36 CSeq: 73557
Aug 11 09:13:36 Date: Thu, Aug 11 2016 15:16:13 GMT
Aug 11 09:13:36 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Aug 11 09:13:36
Aug 11 09:13:36
Aug 11 09:13:39
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::createNewStreamSource(session
id 971148314)
Aug 11 09:13:39 Sending request: PLAY rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Aug 11 09:13:39 CSeq: 73558
Aug 11 09:13:39 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:13:39 Session: 6B8B4567
Aug 11 09:13:39
Aug 11 09:13:39
Aug 11 09:13:39
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::createNewRTPSink()
Aug 11 09:13:39
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 971148314)
Aug 11 09:13:39
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Aug 11 09:13:39 Received 68 new bytes of response data.
Aug 11 09:13:39 Received a complete PLAY response:
Aug 11 09:13:39 RTSP/1.0 200 OK
Aug 11 09:13:39 CSeq: 73558
Aug 11 09:13:39 Session: 6B8B4567
Aug 11 09:13:39 Range: npt=now-
Aug 11 09:13:39
Aug 11 09:13:39
Aug 11 09:13:39 session 6B8B4567 match 6B8B4567
Aug 11 09:13:39 session 6B8B4567 match 6B8B4567
Aug 11 09:13:39 Enter ProxyRTSPClient::continueAfterPLAY, resultCode0
<----- Client did not receive any data, and closes the connection. A
new client is then spawned. This is repeated.
Aug 11 09:13:44
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::closeStreamSource()
Aug 11 09:13:44 Sending request: PAUSE rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Aug 11 09:13:44 CSeq: 73559
Aug 11 09:13:44 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:13:44 Session: 6B8B4567
Aug 11 09:13:44
Aug 11 09:13:44
Aug 11 09:13:44
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Aug 11 09:13:44 Received 88 new bytes of response data.
Aug 11 09:13:44 Received a complete PAUSE response:
Aug 11 09:13:44 RTSP/1.0 200 OK
Aug 11 09:13:44 CSeq: 73559
Aug 11 09:13:44 Date: Thu, Aug 11 2016 15:16:21 GMT
Aug 11 09:13:44 Session: 6B8B4567
Aug 11 09:13:44
Aug 11 09:13:44
Aug 11 09:13:51
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::createNewStreamSource(session
id 1571432271)
Aug 11 09:13:51 Sending request: PLAY rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Aug 11 09:13:51 CSeq: 73560
Aug 11 09:13:51 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:13:51 Session: 6B8B4567
Aug 11 09:13:51
Aug 11 09:13:51
Aug 11 09:13:51
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::createNewRTPSink()
Aug 11 09:13:51 Received 68 new bytes of response data.
Aug 11 09:13:51 Received a complete PLAY response:
Aug 11 09:13:51 RTSP/1.0 200 OK
Aug 11 09:13:51 CSeq: 73560
Aug 11 09:13:51 Session: 6B8B4567
Aug 11 09:13:51 Range: npt=now-
Aug 11 09:13:51
Aug 11 09:13:51
Aug 11 09:13:51 session 6B8B4567 match 6B8B4567
Aug 11 09:13:51 session 6B8B4567 match 6B8B4567
Aug 11 09:13:51 Enter ProxyRTSPClient::continueAfterPLAY, resultCode0
Aug 11 09:13:51
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 1571432271)
Aug 11 09:13:51
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Aug 11 09:13:59 Sending request: OPTIONS
rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Aug 11 09:13:59 CSeq: 73592
Aug 11 09:13:59 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:13:59 Session: 66334873
Aug 11 09:13:59
Aug 11 09:13:59
Aug 11 09:13:59 Received 156 new bytes of response data.
Aug 11 09:13:59 Received a complete OPTIONS response:
Aug 11 09:13:59 RTSP/1.0 200 OK
Aug 11 09:13:59 CSeq: 73592
Aug 11 09:13:59 Date: Thu, Aug 11 2016 15:16:35 GMT
Aug 11 09:13:59 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Aug 11 09:13:59
Aug 11 09:13:59
Aug 11 09:14:06 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Aug 11 09:14:06 CSeq: 73561
Aug 11 09:14:06 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Aug 11 09:14:06 Session: 6B8B4567
Aug 11 09:14:06
Aug 11 09:14:06
Aug 11 09:14:06 Received 156 new bytes of response data.
Aug 11 09:14:06 Received a complete OPTIONS response:
Aug 11 09:14:06 RTSP/1.0 200 OK
Aug 11 09:14:06 CSeq: 73561
Aug 11 09:14:06 Date: Thu, Aug 11 2016 15:16:43 GMT
Aug 11 09:14:06 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Aug 11 09:14:06
Aug 11 09:14:06

Log 2)
Jul 26 20:21:52 Sending request: OPTIONS
rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Jul 26 20:21:52 CSeq: 28863
Jul 26 20:21:52 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:21:52 Session: 6B8B4567
<-- No response to "OPTIONS", client stops receiving data at the same time
Jul 26 20:21:52
Jul 26 20:21:52
Jul 26 20:21:55 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Jul 26 20:21:55 CSeq: 28810
Jul 26 20:21:55 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:21:55 Session: 2AE8944A
Jul 26 20:21:55
Jul 26 20:21:55
Jul 26 20:21:55 Received 156 new bytes of response data.
Jul 26 20:21:55 Received a complete OPTIONS response:
Jul 26 20:21:55 RTSP/1.0 200 OK
Jul 26 20:21:55 CSeq: 28810
Jul 26 20:21:55 Date: Wed, Jul 27 2016 02:24:23 GMT
Jul 26 20:21:55 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:21:55
Jul 26 20:21:55
Jul 26 20:21:59 Sending request: OPTIONS
rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
Jul 26 20:21:59 CSeq: 26399
Jul 26 20:21:59 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:21:59 Session: 6B8B4567
Jul 26 20:21:59
Jul 26 20:21:59
Jul 26 20:21:59 Received 156 new bytes of response data.
Jul 26 20:21:59 Received a complete OPTIONS response:
Jul 26 20:21:59 RTSP/1.0 200 OK
Jul 26 20:21:59 CSeq: 26399
Jul 26 20:21:59 Date: Wed, Jul 27 2016 02:24:27 GMT
Jul 26 20:21:59 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:21:59
Jul 26 20:21:59
Jul 26 20:22:11 ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264/]:
lost connection to server ('errno': 104). Resetting...
Jul 26 20:22:11 ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
Jul 26 20:22:11
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:22:11
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Jul 26 20:22:11
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Jul 26 20:22:11 Opening connection to 192.168.0.126, port 554...
Jul 26 20:22:11 ...remote connection opened
Jul 26 20:22:11 Sending request: DESCRIBE
rtsp://192.168.0.126/ch0_0.h264 RTSP/1.0
Jul 26 20:22:11 CSeq: 28864
Jul 26 20:22:11 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:11 Accept: application/sdp
Jul 26 20:22:11
Jul 26 20:22:11
Jul 26 20:22:12 Received 1026 new bytes of response data.
Jul 26 20:22:12 Received a complete DESCRIBE response:
Jul 26 20:22:12 RTSP/1.0 200 OK
Jul 26 20:22:12 CSeq: 28864
Jul 26 20:22:12 Date: Tue, Jul 26 2016 18:24:41 GMT
Jul 26 20:22:12 Content-Base: rtsp://192.168.0.126/ch0_0.h264/
Jul 26 20:22:12 Content-Type: application/sdp
Jul 26 20:22:12 Content-Length: 857
Jul 26 20:22:12
Jul 26 20:22:12 v=0
Jul 26 20:22:12 o=- 1469557480985042 1 IN IP4 192.168.1.128
Jul 26 20:22:12 s=H.264 Program Stream, streamed by the LIVE555 Media Server
Jul 26 20:22:12 i=ch0_0.h264
Jul 26 20:22:12 t=0 0
Jul 26 20:22:12 a=DevVer:pusher2
Jul 26 20:22:12 a=GroupName:IPCAM
Jul 26 20:22:12 a=NickName:CIF
Jul 26 20:22:12 a=CfgSection:PROG_CHN0
Jul 26 20:22:12 a=tool:LIVE555 Streaming Media v2011.08.13
Jul 26 20:22:12 a=type:broadcast
Jul 26 20:22:12 a=control:*
Jul 26 20:22:12 a=range:npt=0-
Jul 26 20:22:12 a=x-qt-text-nam:H.264 Program Stream, streamed by the
LIVE555 Media Server
Jul 26 20:22:12 a=x-qt-text-inf:ch0_0.h264
Jul 26 20:22:12 m=video 0 RTP/AVP 96
Jul 26 20:22:12 c=IN IP4 0.0.0.0
Jul 26 20:22:12 b=AS:4000
Jul 26 20:22:12 a=rtpmap:96 H264/90000
Jul 26 20:22:12 a=control:trackID=1
Jul 26 20:22:12 a=fmtp:96
packetization-mode=1;profile-level-id=64001F;sprop-parameter-sets=Z2QAH6wrUCgC3IA=,aO48MA==
Jul 26 20:22:12 a=framesize:96 1280-720
Jul 26 20:22:12 a=cliprect:0,0,1280,720
Jul 26 20:22:12 m=audio 0 RTP/AVP 97
Jul 26 20:22:12 a=rtpmap:97 mpeg4-generic/8000/2
Jul 26 20:22:12 a=fmtp:97
streamtype=5;profile-level-id=1;cpresent=0;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1590
Jul 26 20:22:12 a=control:trackID=2
Jul 26 20:22:12
Jul 26 20:22:12
ProxyServerMediaSession[rtsp://192.168.0.126/ch0_0.h264/] added new
"ProxyServerMediaSubsession" for RTP/video/H264 track
Jul 26 20:22:12
ProxyServerMediaSession[rtsp://192.168.0.126/ch0_0.h264/] added new
"ProxyServerMediaSubsession" for RTP/audio/MPEG4-GENERIC track
Jul 26 20:22:12 Sending request: OPTIONS
rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:22:12 CSeq: 28832
Jul 26 20:22:12 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:12 Session: 66334873
Jul 26 20:22:12
Jul 26 20:22:12
<----- A new client is spawned here, but it receives no data
Jul 26 20:22:18 Received 156 new bytes of response data.
Jul 26 20:22:18 Received a complete OPTIONS response:
Jul 26 20:22:18 RTSP/1.0 200 OK
Jul 26 20:22:18 CSeq: 28832
Jul 26 20:22:18 Date: Wed, Jul 27 2016 02:24:46 GMT
Jul 26 20:22:18 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:22:18
Jul 26 20:22:18
Jul 26 20:22:25 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Jul 26 20:22:25 CSeq: 28811
Jul 26 20:22:25 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:25 Session: 2AE8944A
Jul 26 20:22:25
Jul 26 20:22:25
Jul 26 20:22:25 Received 156 new bytes of response data.
Jul 26 20:22:25 Received a complete OPTIONS response:
Jul 26 20:22:25 RTSP/1.0 200 OK
Jul 26 20:22:25 CSeq: 28811
Jul 26 20:22:25 Date: Wed, Jul 27 2016 02:24:53 GMT
Jul 26 20:22:25 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:22:25
Jul 26 20:22:25
Jul 26 20:22:29 Sending request: OPTIONS
rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
Jul 26 20:22:29 CSeq: 26400
Jul 26 20:22:29 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:29 Session: 6B8B4567
Jul 26 20:22:29
Jul 26 20:22:29
Jul 26 20:22:29 Received 156 new bytes of response data.
Jul 26 20:22:29 Received a complete OPTIONS response:
Jul 26 20:22:29 RTSP/1.0 200 OK
Jul 26 20:22:29 CSeq: 26400
Jul 26 20:22:29 Date: Wed, Jul 27 2016 02:24:57 GMT
Jul 26 20:22:29 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:22:29
Jul 26 20:22:29
<----- A new client is spawned here, and receives data for a while
Jul 26 20:22:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewStreamSource(session
id 0)
Jul 26 20:22:39 Initiated:
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]
Jul 26 20:22:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:22:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::closeStreamSource()
Jul 26 20:22:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 0)
Jul 26 20:22:39 Initiated:
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]
Jul 26 20:22:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:22:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:22:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewStreamSource(session
id 2573723271)
Jul 26 20:22:39 Sending request: SETUP
rtsp://192.168.0.126/ch0_0.h264/trackID=1 RTSP/1.0
Jul 26 20:22:39 CSeq: 28865
Jul 26 20:22:39 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:39 Transport: RTP/AVP;unicast;client_port=45182-45183
Jul 26 20:22:39
Jul 26 20:22:39
Jul 26 20:22:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:22:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 2573723271)
Jul 26 20:22:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:22:39 Received 223 new bytes of response data.
Jul 26 20:22:39 Received a complete SETUP response:
Jul 26 20:22:39 RTSP/1.0 200 OK
Jul 26 20:22:39 CSeq: 28865
Jul 26 20:22:39 Date: Tue, Jul 26 2016 18:25:08 GMT
Jul 26 20:22:39 Transport:
RTP/AVP;unicast;destination=192.168.0.105;source=192.168.0.126;client_port=45182-45183;server_port=6970-6971;ssrc=b27b23c6
Jul 26 20:22:39 Session: 6B8B4567
Jul 26 20:22:39
Jul 26 20:22:39
Jul 26 20:22:39
ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264/]::continueAfterSETUP():
head codec: H264; numSubsessions 2
Jul 26 20:22:39 queue: H264 MPEG4-GENERIC
Jul 26 20:22:39 Sending request: SETUP
rtsp://192.168.0.126/ch0_0.h264/trackID=2 RTSP/1.0
Jul 26 20:22:39 CSeq: 28866
Jul 26 20:22:39 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:39 Transport: RTP/AVP;unicast;client_port=46172-46173
Jul 26 20:22:39 Session: 6B8B4567
Jul 26 20:22:39
Jul 26 20:22:39
Jul 26 20:22:39 Received 223 new bytes of response data.
Jul 26 20:22:39 Received a complete SETUP response:
Jul 26 20:22:39 RTSP/1.0 200 OK
Jul 26 20:22:39 CSeq: 28866
Jul 26 20:22:39 Date: Tue, Jul 26 2016 18:25:08 GMT
Jul 26 20:22:39 Transport:
RTP/AVP;unicast;destination=192.168.0.105;source=192.168.0.126;client_port=46172-46173;server_port=6972-6973;ssrc=b27b23c6
Jul 26 20:22:39 Session: 6B8B4567
Jul 26 20:22:39
Jul 26 20:22:39
Jul 26 20:22:39
ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264/]::continueAfterSETUP():
head codec: MPEG4-GENERIC; numSubsessions 2
Jul 26 20:22:39 queue: MPEG4-GENERIC
Jul 26 20:22:39 Sending request: PLAY rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Jul 26 20:22:39 CSeq: 28867
Jul 26 20:22:39 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:39 Session: 6B8B4567
Jul 26 20:22:39
Jul 26 20:22:39
Jul 26 20:22:39 Received 68 new bytes of response data.
Jul 26 20:22:39 Received a complete PLAY response:
Jul 26 20:22:39 RTSP/1.0 200 OK
Jul 26 20:22:39 CSeq: 28867
Jul 26 20:22:39 Session: 6B8B4567
Jul 26 20:22:39 Range: npt=now-
Jul 26 20:22:39
Jul 26 20:22:39
Jul 26 20:22:39 session 6B8B4567 match 6B8B4567
Jul 26 20:22:39 session 6B8B4567 match 6B8B4567
Jul 26 20:22:39 Enter ProxyRTSPClient::continueAfterPLAY, resultCode0
Jul 26 20:22:42 Sending request: OPTIONS
rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Jul 26 20:22:42 CSeq: 28868
Jul 26 20:22:42 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:42 Session: 6B8B4567
Jul 26 20:22:42
Jul 26 20:22:42
Jul 26 20:22:42 Received 156 new bytes of response data.
Jul 26 20:22:42 Received a complete OPTIONS response:
Jul 26 20:22:42 RTSP/1.0 200 OK
Jul 26 20:22:42 CSeq: 28868
Jul 26 20:22:42 Date: Tue, Jul 26 2016 18:25:11 GMT
Jul 26 20:22:42 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:22:42
Jul 26 20:22:42
Jul 26 20:22:48 Sending request: OPTIONS
rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:22:48 CSeq: 28833
Jul 26 20:22:48 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:48 Session: 66334873
Jul 26 20:22:48
Jul 26 20:22:48
Jul 26 20:22:48 Received 156 new bytes of response data.
Jul 26 20:22:48 Received a complete OPTIONS response:
Jul 26 20:22:48 RTSP/1.0 200 OK
Jul 26 20:22:48 CSeq: 28833
Jul 26 20:22:48 Date: Wed, Jul 27 2016 02:25:16 GMT
Jul 26 20:22:48 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:22:48
Jul 26 20:22:48
Jul 26 20:22:55 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Jul 26 20:22:55 CSeq: 28812
Jul 26 20:22:55 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:55 Session: 2AE8944A
Jul 26 20:22:55
Jul 26 20:22:55
Jul 26 20:22:55 Received 156 new bytes of response data.
Jul 26 20:22:55 Received a complete OPTIONS response:
Jul 26 20:22:55 RTSP/1.0 200 OK
Jul 26 20:22:55 CSeq: 28812
Jul 26 20:22:55 Date: Wed, Jul 27 2016 02:25:23 GMT
Jul 26 20:22:55 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:22:55
Jul 26 20:22:55
Jul 26 20:22:59 Sending request: OPTIONS
rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
Jul 26 20:22:59 CSeq: 26401
Jul 26 20:22:59 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:22:59 Session: 6B8B4567
Jul 26 20:22:59
Jul 26 20:22:59
Jul 26 20:22:59 Received 156 new bytes of response data.
Jul 26 20:22:59 Received a complete OPTIONS response:
Jul 26 20:22:59 RTSP/1.0 200 OK
Jul 26 20:22:59 CSeq: 26401
Jul 26 20:22:59 Date: Wed, Jul 27 2016 02:25:27 GMT
Jul 26 20:22:59 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:22:59
Jul 26 20:22:59
Jul 26 20:23:12 Sending request: OPTIONS
rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Jul 26 20:23:12 CSeq: 28869
Jul 26 20:23:12 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:12 Session: 6B8B4567
Jul 26 20:23:12
Jul 26 20:23:12
Jul 26 20:23:18 Sending request: OPTIONS
rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:23:18 CSeq: 28834
Jul 26 20:23:18 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:18 Session: 66334873
Jul 26 20:23:18
Jul 26 20:23:18
Jul 26 20:23:25 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Jul 26 20:23:25 CSeq: 28813
Jul 26 20:23:25 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:25 Session: 2AE8944A
Jul 26 20:23:25
Jul 26 20:23:25
Jul 26 20:23:29 Sending request: OPTIONS
rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
Jul 26 20:23:29 CSeq: 26402
Jul 26 20:23:29 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:29 Session: 6B8B4567
Jul 26 20:23:29
Jul 26 20:23:29
Jul 26 20:23:29 Received 156 new bytes of response data.
Jul 26 20:23:29 Received a complete OPTIONS response:
Jul 26 20:23:29 RTSP/1.0 200 OK
Jul 26 20:23:29 CSeq: 26402
Jul 26 20:23:29 Date: Wed, Jul 27 2016 02:25:57 GMT
Jul 26 20:23:29 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:23:29
Jul 26 20:23:29
Jul 26 20:23:29 Received 156 new bytes of response data.
Jul 26 20:23:29 Received a complete OPTIONS response:
Jul 26 20:23:29 RTSP/1.0 200 OK
Jul 26 20:23:29 CSeq: 28813
Jul 26 20:23:29 Date: Wed, Jul 27 2016 02:25:57 GMT
Jul 26 20:23:29 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:23:29
Jul 26 20:23:29
Jul 26 20:23:32 ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264/]:
lost connection to server ('errno': 104). Resetting...
Jul 26 20:23:32 ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
Jul 26 20:23:32
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:23:32
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Jul 26 20:23:32
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Jul 26 20:23:32 Opening connection to 192.168.0.126, port 554...
Jul 26 20:23:32 ...remote connection opened
Jul 26 20:23:32 Sending request: DESCRIBE
rtsp://192.168.0.126/ch0_0.h264 RTSP/1.0
Jul 26 20:23:32 CSeq: 28870
Jul 26 20:23:32 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:32 Accept: application/sdp
Jul 26 20:23:32
Jul 26 20:23:32
Jul 26 20:23:32 Received 1026 new bytes of response data.
Jul 26 20:23:32 Received a complete DESCRIBE response:
Jul 26 20:23:32 RTSP/1.0 200 OK
Jul 26 20:23:32 CSeq: 28870
Jul 26 20:23:32 Date: Tue, Jul 26 2016 18:26:01 GMT
Jul 26 20:23:32 Content-Base: rtsp://192.168.0.126/ch0_0.h264/
Jul 26 20:23:32 Content-Type: application/sdp
Jul 26 20:23:32 Content-Length: 857
Jul 26 20:23:32
Jul 26 20:23:32 v=0
Jul 26 20:23:32 o=- 1469557561760230 1 IN IP4 192.168.1.128
Jul 26 20:23:32 s=H.264 Program Stream, streamed by the LIVE555 Media Server
Jul 26 20:23:32 i=ch0_0.h264
Jul 26 20:23:32 t=0 0
Jul 26 20:23:32 a=DevVer:pusher2
Jul 26 20:23:32 a=GroupName:IPCAM
Jul 26 20:23:32 a=NickName:CIF
Jul 26 20:23:32 a=CfgSection:PROG_CHN0
Jul 26 20:23:32 a=tool:LIVE555 Streaming Media v2011.08.13
Jul 26 20:23:32 a=type:broadcast
Jul 26 20:23:32 a=control:*
Jul 26 20:23:32 a=range:npt=0-
Jul 26 20:23:32 a=x-qt-text-nam:H.264 Program Stream, streamed by the
LIVE555 Media Server
Jul 26 20:23:32 a=x-qt-text-inf:ch0_0.h264
Jul 26 20:23:32 m=video 0 RTP/AVP 96
Jul 26 20:23:32 c=IN IP4 0.0.0.0
Jul 26 20:23:32 b=AS:4000
Jul 26 20:23:32 a=rtpmap:96 H264/90000
Jul 26 20:23:32 a=control:trackID=1
Jul 26 20:23:32 a=fmtp:96
packetization-mode=1;profile-level-id=64001F;sprop-parameter-sets=Z2QAH6wrUCgC3IA=,aO48MA==
Jul 26 20:23:32 a=framesize:96 1280-720
Jul 26 20:23:32 a=cliprect:0,0,1280,720
Jul 26 20:23:32 m=audio 0 RTP/AVP 97
Jul 26 20:23:32 a=rtpmap:97 mpeg4-generic/8000/2
Jul 26 20:23:32 a=fmtp:97
streamtype=5;profile-level-id=1;cpresent=0;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1590
Jul 26 20:23:32 a=control:trackID=2
Jul 26 20:23:32
Jul 26 20:23:32
ProxyServerMediaSession[rtsp://192.168.0.126/ch0_0.h264/] added new
"ProxyServerMediaSubsession" for RTP/video/H264 track
Jul 26 20:23:32
ProxyServerMediaSession[rtsp://192.168.0.126/ch0_0.h264/] added new
"ProxyServerMediaSubsession" for RTP/audio/MPEG4-GENERIC track
Jul 26 20:23:37
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:23:37 Sending request: PAUSE rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:23:37 CSeq: 28835
Jul 26 20:23:37 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:37 Session: 66334873
Jul 26 20:23:37
Jul 26 20:23:37
Jul 26 20:23:37
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,H264]::closeStreamSource()
<----- A new client is spawned here, and receives data for a while
Jul 26 20:23:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewStreamSource(session
id 0)
Jul 26 20:23:39 Initiated:
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]
Jul 26 20:23:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:23:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::closeStreamSource()
Jul 26 20:23:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 0)
Jul 26 20:23:39 Initiated:
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]
Jul 26 20:23:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:23:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:23:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewStreamSource(session
id 2810389544)
Jul 26 20:23:39 Sending request: SETUP
rtsp://192.168.0.126/ch0_0.h264/trackID=1 RTSP/1.0
Jul 26 20:23:39 CSeq: 28871
Jul 26 20:23:39 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:39 Transport: RTP/AVP;unicast;client_port=48158-48159
Jul 26 20:23:39
Jul 26 20:23:39
Jul 26 20:23:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:23:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 2810389544)
Jul 26 20:23:39
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:23:39 Received 223 new bytes of response data.
Jul 26 20:23:39 Received a complete SETUP response:
Jul 26 20:23:39 RTSP/1.0 200 OK
Jul 26 20:23:39 CSeq: 28871
Jul 26 20:23:39 Date: Tue, Jul 26 2016 18:26:08 GMT
Jul 26 20:23:39 Transport:
RTP/AVP;unicast;destination=192.168.0.105;source=192.168.0.126;client_port=48158-48159;server_port=6970-6971;ssrc=b27b23c6
Jul 26 20:23:39 Session: 6B8B4567
Jul 26 20:23:39
Jul 26 20:23:39
Jul 26 20:23:39
ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264/]::continueAfterSETUP():
head codec: H264; numSubsessions 2
Jul 26 20:23:39 queue: H264 MPEG4-GENERIC
Jul 26 20:23:39 Sending request: SETUP
rtsp://192.168.0.126/ch0_0.h264/trackID=2 RTSP/1.0
Jul 26 20:23:39 CSeq: 28872
Jul 26 20:23:39 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:39 Transport: RTP/AVP;unicast;client_port=57982-57983
Jul 26 20:23:39 Session: 6B8B4567
Jul 26 20:23:39
Jul 26 20:23:39
Jul 26 20:23:39 Received 223 new bytes of response data.
Jul 26 20:23:39 Received a complete SETUP response:
Jul 26 20:23:39 RTSP/1.0 200 OK
Jul 26 20:23:39 CSeq: 28872
Jul 26 20:23:39 Date: Tue, Jul 26 2016 18:26:08 GMT
Jul 26 20:23:39 Transport:
RTP/AVP;unicast;destination=192.168.0.105;source=192.168.0.126;client_port=57982-57983;server_port=6972-6973;ssrc=b27b23c6
Jul 26 20:23:39 Session: 6B8B4567
Jul 26 20:23:39
Jul 26 20:23:39
Jul 26 20:23:39
ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264/]::continueAfterSETUP():
head codec: MPEG4-GENERIC; numSubsessions 2
Jul 26 20:23:39 queue: MPEG4-GENERIC
Jul 26 20:23:39 Sending request: PLAY rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Jul 26 20:23:39 CSeq: 28873
Jul 26 20:23:39 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:39 Session: 6B8B4567
Jul 26 20:23:39
Jul 26 20:23:39
Jul 26 20:23:39 Received 68 new bytes of response data.
Jul 26 20:23:39 Received a complete PLAY response:
Jul 26 20:23:39 RTSP/1.0 200 OK
Jul 26 20:23:39 CSeq: 28873
Jul 26 20:23:39 Session: 6B8B4567
Jul 26 20:23:39 Range: npt=now-
Jul 26 20:23:39
Jul 26 20:23:39
Jul 26 20:23:39 session 6B8B4567 match 6B8B4567
Jul 26 20:23:39 session 6B8B4567 match 6B8B4567
Jul 26 20:23:39 Enter ProxyRTSPClient::continueAfterPLAY, resultCode0
Jul 26 20:23:42
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,H264]::createNewStreamSource(session
id 2371657465)
Jul 26 20:23:42 Sending request: PLAY rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:23:42 CSeq: 28836
Jul 26 20:23:42 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:42 Session: 66334873
Jul 26 20:23:42
Jul 26 20:23:42
Jul 26 20:23:42
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:23:42
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 2371657465)
Jul 26 20:23:42
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:23:44 Received 156 new bytes of response data.
Jul 26 20:23:44 Received a complete OPTIONS response:
Jul 26 20:23:44 RTSP/1.0 200 OK
Jul 26 20:23:44 CSeq: 28834
Jul 26 20:23:44 Date: Wed, Jul 27 2016 02:26:12 GMT
Jul 26 20:23:44 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:23:44
Jul 26 20:23:44
Jul 26 20:23:45 Received 88 new bytes of response data.
Jul 26 20:23:45 Received a complete PAUSE response:
Jul 26 20:23:45 RTSP/1.0 200 OK
Jul 26 20:23:45 CSeq: 28835
Jul 26 20:23:45 Date: Wed, Jul 27 2016 02:26:12 GMT
Jul 26 20:23:45 Session: 66334873
Jul 26 20:23:45
Jul 26 20:23:45
Jul 26 20:23:59 Sending request: OPTIONS
rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
Jul 26 20:23:59 CSeq: 26403
Jul 26 20:23:59 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:59 Session: 6B8B4567
Jul 26 20:23:59
Jul 26 20:23:59
Jul 26 20:23:59 Received 156 new bytes of response data.
Jul 26 20:23:59 Received a complete OPTIONS response:
Jul 26 20:23:59 RTSP/1.0 200 OK
Jul 26 20:23:59 CSeq: 26403
Jul 26 20:23:59 Date: Wed, Jul 27 2016 02:26:27 GMT
Jul 26 20:23:59 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:23:59
Jul 26 20:23:59
Jul 26 20:23:59 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Jul 26 20:23:59 CSeq: 28814
Jul 26 20:23:59 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:23:59 Session: 2AE8944A
Jul 26 20:23:59
Jul 26 20:23:59
Jul 26 20:23:59 Received 156 new bytes of response data.
Jul 26 20:23:59 Received a complete OPTIONS response:
Jul 26 20:23:59 RTSP/1.0 200 OK
Jul 26 20:23:59 CSeq: 28814
Jul 26 20:23:59 Date: Wed, Jul 27 2016 02:26:27 GMT
Jul 26 20:23:59 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:23:59
Jul 26 20:23:59
Jul 26 20:24:02 Sending request: OPTIONS
rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:02 CSeq: 28874
Jul 26 20:24:02 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:02 Session: 6B8B4567
Jul 26 20:24:02
Jul 26 20:24:02
Jul 26 20:24:02 Received 156 new bytes of response data.
Jul 26 20:24:02 Received a complete OPTIONS response:
Jul 26 20:24:02 RTSP/1.0 200 OK
Jul 26 20:24:02 CSeq: 28874
Jul 26 20:24:02 Date: Tue, Jul 26 2016 18:26:31 GMT
Jul 26 20:24:02 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:24:02
Jul 26 20:24:02
Jul 26 20:24:14 Sending request: OPTIONS
rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:14 CSeq: 28837
Jul 26 20:24:14 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:14 Session: 66334873
Jul 26 20:24:14
Jul 26 20:24:14
Jul 26 20:24:15 Received 156 new bytes of response data.
Jul 26 20:24:15 WARNING: The server did not respond to our "PLAY"
request (CSeq: 28836). The server appears to be buggy (perhaps not
handling pipelined requests properly).
Jul 26 20:24:15 Received a complete OPTIONS response:
Jul 26 20:24:15 RTSP/1.0 200 OK
Jul 26 20:24:15 CSeq: 28837
Jul 26 20:24:15 Date: Wed, Jul 27 2016 02:26:43 GMT
Jul 26 20:24:15 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:24:15
Jul 26 20:24:15
Jul 26 20:24:29 Sending request: OPTIONS
rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:29 CSeq: 26404
Jul 26 20:24:29 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:29 Session: 6B8B4567
Jul 26 20:24:29
Jul 26 20:24:29
Jul 26 20:24:29 Received 156 new bytes of response data.
Jul 26 20:24:29 Received a complete OPTIONS response:
Jul 26 20:24:29 RTSP/1.0 200 OK
Jul 26 20:24:29 CSeq: 26404
Jul 26 20:24:29 Date: Wed, Jul 27 2016 02:26:57 GMT
Jul 26 20:24:29 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:24:29
Jul 26 20:24:29
Jul 26 20:24:29 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:29 CSeq: 28815
Jul 26 20:24:29 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:29 Session: 2AE8944A
Jul 26 20:24:29
Jul 26 20:24:29
Jul 26 20:24:32 Sending request: OPTIONS
rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:32 CSeq: 28875
Jul 26 20:24:32 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:32 Session: 6B8B4567
Jul 26 20:24:32
Jul 26 20:24:32
Jul 26 20:24:34
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::closeStreamSource()
Jul 26 20:24:34 Sending request: PAUSE rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:34 CSeq: 28876
Jul 26 20:24:34 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:34 Session: 6B8B4567
Jul 26 20:24:34
Jul 26 20:24:34
Jul 26 20:24:34
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:24:45 Sending request: OPTIONS
rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:45 CSeq: 28838
Jul 26 20:24:45 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:45 Session: 66334873
Jul 26 20:24:45
Jul 26 20:24:45
Jul 26 20:24:47 Received 156 new bytes of response data.
Jul 26 20:24:47 Received a complete OPTIONS response:
Jul 26 20:24:47 RTSP/1.0 200 OK
Jul 26 20:24:47 CSeq: 28815
Jul 26 20:24:47 Date: Wed, Jul 27 2016 02:27:15 GMT
Jul 26 20:24:47 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:24:47
Jul 26 20:24:47
Jul 26 20:24:52
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewStreamSource(session
id 2180303685)
Jul 26 20:24:52 Sending request: PLAY rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:52 CSeq: 28877
Jul 26 20:24:52 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:52 Session: 6B8B4567
Jul 26 20:24:52
Jul 26 20:24:52
<----- A new client is spawned and makes a connection to the proxy server here
Jul 26 20:24:52
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:24:52
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 2180303685)
Jul 26 20:24:52
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:24:54 ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264/]:
lost connection to server ('errno': 104). Resetting...
Jul 26 20:24:54 ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
Jul 26 20:24:54
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:24:54
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Jul 26 20:24:54
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Jul 26 20:24:54 Opening connection to 192.168.0.126, port 554...
Jul 26 20:24:54 Enter ProxyRTSPClient::continueAfterPLAY, resultCode-115
Jul 26 20:24:54 ...remote connection opened
Jul 26 20:24:54 Sending request: DESCRIBE
rtsp://192.168.0.126/ch0_0.h264 RTSP/1.0
Jul 26 20:24:54 CSeq: 28878
Jul 26 20:24:54 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:54 Accept: application/sdp
Jul 26 20:24:54
Jul 26 20:24:54
Jul 26 20:24:54 Sending request: OPTIONS
rtsp://192.168.0.126/ch0_0.h264 RTSP/1.0
Jul 26 20:24:54 CSeq: 28879
Jul 26 20:24:54 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:54
Jul 26 20:24:54
Jul 26 20:24:54 Received 1026 new bytes of response data.
Jul 26 20:24:54 Received a complete DESCRIBE response:
Jul 26 20:24:54 RTSP/1.0 200 OK
Jul 26 20:24:54 CSeq: 28878
Jul 26 20:24:54 Date: Tue, Jul 26 2016 18:27:23 GMT
Jul 26 20:24:54 Content-Base: rtsp://192.168.0.126/ch0_0.h264/
Jul 26 20:24:54 Content-Type: application/sdp
Jul 26 20:24:54 Content-Length: 857
Jul 26 20:24:54
Jul 26 20:24:54 v=0
Jul 26 20:24:54 o=- 1469557643637439 1 IN IP4 192.168.1.128
Jul 26 20:24:54 s=H.264 Program Stream, streamed by the LIVE555 Media Server
Jul 26 20:24:54 i=ch0_0.h264
Jul 26 20:24:54 t=0 0
Jul 26 20:24:54 a=DevVer:pusher2
Jul 26 20:24:54 a=GroupName:IPCAM
Jul 26 20:24:54 a=NickName:CIF
Jul 26 20:24:54 a=CfgSection:PROG_CHN0
Jul 26 20:24:54 a=tool:LIVE555 Streaming Media v2011.08.13
Jul 26 20:24:54 a=type:broadcast
Jul 26 20:24:54 a=control:*
Jul 26 20:24:54 a=range:npt=0-
Jul 26 20:24:54 a=x-qt-text-nam:H.264 Program Stream, streamed by the
LIVE555 Media Server
Jul 26 20:24:54 a=x-qt-text-inf:ch0_0.h264
Jul 26 20:24:54 m=video 0 RTP/AVP 96
Jul 26 20:24:54 c=IN IP4 0.0.0.0
Jul 26 20:24:54 b=AS:4000
Jul 26 20:24:54 a=rtpmap:96 H264/90000
Jul 26 20:24:54 a=control:trackID=1
Jul 26 20:24:54 a=fmtp:96
packetization-mode=1;profile-level-id=64001F;sprop-parameter-sets=Z2QAH6wrUCgC3IA=,aO48MA==
Jul 26 20:24:54 a=framesize:96 1280-720
Jul 26 20:24:54 a=cliprect:0,0,1280,720
Jul 26 20:24:54 m=audio 0 RTP/AVP 97
Jul 26 20:24:54 a=rtpmap:97 mpeg4-generic/8000/2
Jul 26 20:24:54 a=fmtp:97
streamtype=5;profile-level-id=1;cpresent=0;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1590
Jul 26 20:24:54 a=control:trackID=2
Jul 26 20:24:54
Jul 26 20:24:54
ProxyServerMediaSession[rtsp://192.168.0.126/ch0_0.h264/] added new
"ProxyServerMediaSubsession" for RTP/video/H264 track
Jul 26 20:24:54
ProxyServerMediaSession[rtsp://192.168.0.126/ch0_0.h264/] added new
"ProxyServerMediaSubsession" for RTP/audio/MPEG4-GENERIC track
Jul 26 20:24:57
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,H264]::closeStreamSource()
Jul 26 20:24:57 Sending request: PAUSE rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:57 CSeq: 28839
Jul 26 20:24:57 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:57 Session: 66334873
Jul 26 20:24:57
Jul 26 20:24:57
Jul 26 20:24:57
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:24:57
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,H264]::createNewStreamSource(session
id 194978319)
Jul 26 20:24:57 Sending request: PLAY rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:57 CSeq: 28840
Jul 26 20:24:57 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:57 Session: 66334873
Jul 26 20:24:57
Jul 26 20:24:57
Jul 26 20:24:57
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:24:57
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 194978319)
Jul 26 20:24:57
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:24:59 Sending request: OPTIONS
rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
Jul 26 20:24:59 CSeq: 26405
Jul 26 20:24:59 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:24:59 Session: 6B8B4567
Jul 26 20:24:59
Jul 26 20:24:59
Jul 26 20:24:59 Received 156 new bytes of response data.
Jul 26 20:24:59 Received a complete OPTIONS response:
Jul 26 20:24:59 RTSP/1.0 200 OK
Jul 26 20:24:59 CSeq: 26405
Jul 26 20:24:59 Date: Wed, Jul 27 2016 02:27:27 GMT
Jul 26 20:24:59 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:24:59
Jul 26 20:24:59
Jul 26 20:25:02
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,H264]::closeStreamSource()
Jul 26 20:25:02 Sending request: PAUSE rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:25:02 CSeq: 28841
Jul 26 20:25:02 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:25:02 Session: 66334873
Jul 26 20:25:02
Jul 26 20:25:02
Jul 26 20:25:02
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:25:17 Sending request: OPTIONS
rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Jul 26 20:25:17 CSeq: 28816
Jul 26 20:25:17 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:25:17 Session: 2AE8944A
Jul 26 20:25:17
Jul 26 20:25:17
Jul 26 20:25:18
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:25:18 Sending request: PAUSE rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Jul 26 20:25:18 CSeq: 28817
Jul 26 20:25:18 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:25:18 Session: 2AE8944A
Jul 26 20:25:18
Jul 26 20:25:18
Jul 26 20:25:18
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::closeStreamSource()
<----- Client did not receive any data, and closes the connection. A
new client is spawned.
Jul 26 20:25:24
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewStreamSource(session
id 0)
Jul 26 20:25:24 Initiated:
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]
Jul 26 20:25:24
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:25:24
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::closeStreamSource()
Jul 26 20:25:24
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 0)
Jul 26 20:25:24 Initiated:
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]
Jul 26 20:25:24
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:25:24
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:25:24
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewStreamSource(session
id 1106410895)
Jul 26 20:25:24 Sending request: SETUP
rtsp://192.168.0.126/ch0_0.h264/trackID=1 RTSP/1.0
Jul 26 20:25:24 CSeq: 28880
Jul 26 20:25:24 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:25:24 Transport: RTP/AVP;unicast;client_port=39758-39759
Jul 26 20:25:24
Jul 26 20:25:24
Jul 26 20:25:24
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:25:24
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 1106410895)
Jul 26 20:25:24
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:25:24 Sending request: OPTIONS
rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Jul 26 20:25:24 CSeq: 28881
Jul 26 20:25:24 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:25:24
Jul 26 20:25:24
Jul 26 20:25:27
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,H264]::createNewStreamSource(session
id 3413133049)
Jul 26 20:25:27 Sending request: PLAY rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:25:27 CSeq: 28842
Jul 26 20:25:27 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:25:27 Session: 66334873
Jul 26 20:25:27
Jul 26 20:25:27
Jul 26 20:25:27
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:25:27
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 3413133049)
Jul 26 20:25:27
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:25:29 Sending request: OPTIONS
rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
Jul 26 20:25:29 CSeq: 26406
Jul 26 20:25:29 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:25:29 Session: 6B8B4567
Jul 26 20:25:29
Jul 26 20:25:29
Jul 26 20:25:29 Received 156 new bytes of response data.
Jul 26 20:25:29 Received a complete OPTIONS response:
Jul 26 20:25:29 RTSP/1.0 200 OK
Jul 26 20:25:29 CSeq: 26406
Jul 26 20:25:29 Date: Wed, Jul 27 2016 02:27:57 GMT
Jul 26 20:25:29 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:25:29
Jul 26 20:25:29
Jul 26 20:25:29
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::closeStreamSource()
Jul 26 20:25:29
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:25:32
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,H264]::closeStreamSource()
Jul 26 20:25:32 Sending request: PAUSE rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
Jul 26 20:25:32 CSeq: 28843
Jul 26 20:25:32 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:25:32 Session: 66334873
Jul 26 20:25:32
Jul 26 20:25:32
Jul 26 20:25:32
ProxyServerMediaSubsession[rtsp://192.168.0.125/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Jul 26 20:25:33
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::createNewStreamSource(session
id 1027074013)
Jul 26 20:25:33 Sending request: PLAY rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
Jul 26 20:25:33 CSeq: 28818
Jul 26 20:25:33 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.06.26)
Jul 26 20:25:33 Session: 2AE8944A
Jul 26 20:25:33
Jul 26 20:25:33
Jul 26 20:25:33
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,H264]::createNewRTPSink()
Jul 26 20:25:33
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 1027074013)
Jul 26 20:25:33
ProxyServerMediaSubsession[rtsp://192.168.0.124/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Jul 26 20:25:41 Received 156 new bytes of response data.
Jul 26 20:25:41 Received a complete OPTIONS response:
Jul 26 20:25:41 RTSP/1.0 200 OK
Jul 26 20:25:41 CSeq: 28838
Jul 26 20:25:41 Date: Wed, Jul 27 2016 02:28:09 GMT
Jul 26 20:25:41 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:25:41
Jul 26 20:25:41
Jul 26 20:25:41 Received 88 new bytes of response data.
Jul 26 20:25:41 Received a complete PAUSE response:
Jul 26 20:25:41 RTSP/1.0 200 OK
Jul 26 20:25:41 CSeq: 28839
Jul 26 20:25:41 Date: Wed, Jul 27 2016 02:28:09 GMT
Jul 26 20:25:41 Session: 66334873
Jul 26 20:25:41
Jul 26 20:25:41
Jul 26 20:25:42 Received 156 new bytes of response data.
Jul 26 20:25:42 Received a complete OPTIONS response:
Jul 26 20:25:42 RTSP/1.0 200 OK
Jul 26 20:25:42 CSeq: 28816
Jul 26 20:25:42 Date: Wed, Jul 27 2016 02:28:11 GMT
Jul 26 20:25:42 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Jul 26 20:25:42
Jul 26 20:25:42
Jul 26 20:25:42 Received 88 new bytes of response data.
Jul 26 20:25:42 Received a complete PAUSE response:
Jul 26 20:25:42 RTSP/1.0 200 OK
Jul 26 20:25:42 CSeq: 28817
Jul 26 20:25:42 Date: Wed, Jul 27 2016 02:28:11 GMT
Jul 26 20:25:42 Session: 2AE8944A
Jul 26 20:25:42
Jul 26 20:25:42
Jul 26 20:25:44
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Jul 26 20:25:44
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Jul 26 20:25:44 Opening connection to 192.168.0.126, port 554...
<----- Client did not receive any data, and closes the connection. A
new client is spawned. This, and all subsequent clients, are being
told: RTSP/1.0 404 File Not Found, Or In Incorrect Format
Ross Finlayson
2016-09-05 08:12:44 UTC
Permalink
Post by Erik Montnemery
Most of the time, the proxy server reconnects to the source after a
loss of connection to a source, but every now and then I observe one
In each case, the problem (from what I can tell) seems to be the fault of the ‘back-end’ server - i.e., it seems to be broken.
Post by Erik Montnemery
1) The proxyserver reconnects to the source, but no data frames are
forwarded to the clients.
If no data are forwarded to the (‘front-end’) clients, then that must mean that the ‘back-end’ server was not sending any data to the proxy server. If the ‘back-end’ server appears responsive in spite of this (i.e., the RTSP connection remains open, and the server continues responding to “OPTIONS” requests from the proxy server), then it must be broken in some way…
Post by Erik Montnemery
2) The proxy server does not reconnect to the source, and clients to
RTSP/1.0 404 File Not Found, Or In Incorrect Format
An example log of scenario 2) is pasted below
[…]
Post by Erik Montnemery
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Jul 26 20:25:44
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Jul 26 20:25:44 Opening connection to 192.168.0.126, port 554…
In this case the state for the stream has timed out, and the proxy server then attempts to re-open a RTSP connection to the ‘back-end’ server. However, this appears to be hanging - again, apparently due to your ‘back-end’ server being broken.

I suggest just replacing your ‘back-end’ servers (i.e., web cams or whatever).


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
Erik Montnemery
2016-09-05 19:28:34 UTC
Permalink
Thanks Ross,

Regarding issue 1)
You might be right, I'll try to reproduce while recording network traffic.

Regarding issue 2)
the state for the stream has timed out, and the proxy server then attempts to re-open a RTSP connection to the ‘back-end’ server. However, this appears to be hanging - again, apparently due to your ‘back-end’ server being broken.
The issue is triggered when there is network outage, and can be
reproduced by forcing the 'back-end' devices to repeatedly reconnect
to the WIFI.
After reproducing a few more times, I suspect the reestablishing of
network connection (sometimes) happens because there is a race
condition/timing issue:

Example 1)
Sep 05 18:24:18 ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
Sep 05 18:24:18
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Sep 05 18:24:18
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Sep 05 18:24:18 Opening connection to 192.168.0.126, port 554...
Sep 05 18:24:18 ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264]: lost
connection to server ('errno': 115). Resetting...
<----- "Reset" triggered in
ProxyRTSPClient::continueAfterLivenessCommand while reconnect to the
'back-end' is in progress

Example 2)
(Note, I added some additional debug prints)
Sep 05 19:53:16 StreamState::reclaim()
Sep 05 19:53:16 ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
Sep 05 19:53:16
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Sep 05 19:53:16
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Sep 05 19:53:16 Opening connection to 192.168.0.126, port 554...
Sep 05 19:53:16 Setting up BackhroundHandling for socket 7
Sep 05 19:53:16 ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264]: lost
connection to server ('errno': 115). Resetting...
<----- Again, "Reset" triggered in
ProxyRTSPClient::continueAfterLivenessCommand while reconnect to the
'back-end' is in progress

/Erik
Post by Erik Montnemery
Most of the time, the proxy server reconnects to the source after a
loss of connection to a source, but every now and then I observe one
In each case, the problem (from what I can tell) seems to be the fault of the ‘back-end’ server - i.e., it seems to be broken.
Post by Erik Montnemery
1) The proxyserver reconnects to the source, but no data frames are
forwarded to the clients.
If no data are forwarded to the (‘front-end’) clients, then that must mean that the ‘back-end’ server was not sending any data to the proxy server. If the ‘back-end’ server appears responsive in spite of this (i.e., the RTSP connection remains open, and the server continues responding to “OPTIONS” requests from the proxy server), then it must be broken in some way…
Post by Erik Montnemery
2) The proxy server does not reconnect to the source, and clients to
RTSP/1.0 404 File Not Found, Or In Incorrect Format
An example log of scenario 2) is pasted below
[…]
Post by Erik Montnemery
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Jul 26 20:25:44
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Jul 26 20:25:44 Opening connection to 192.168.0.126, port 554…
In this case the state for the stream has timed out, and the proxy server then attempts to re-open a RTSP connection to the ‘back-end’ server. However, this appears to be hanging - again, apparently due to your ‘back-end’ server being broken.
I suggest just replacing your ‘back-end’ servers (i.e., web cams or whatever).
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
http://lists.live555.com/mailman/listinfo/live-devel
Erik Montnemery
2016-09-07 15:45:08 UTC
Permalink
Regarding issue 2)
Post by Erik Montnemery
the state for the stream has timed out, and the proxy server then attempts to re-open a RTSP connection to the ‘back-end’ server. However, this appears to be hanging - again, apparently due to your ‘back-end’ server being broken.
The issue is triggered when there is network outage, and can be
reproduced by forcing the 'back-end' devices to repeatedly reconnect
to the WIFI.
After reproducing a few more times, I suspect the reestablishing of
network connection (sometimes) happens because there is a race
I don't think I made much sense, let me rephrase:
Issue 2) is triggered when there is network outage, and can be
reproduced by forcing the 'back-end' devices to repeatedly reconnect
to the Wi-Fi network.

After reproducing a few more times, it is clear there is an issue if
ProxyRTSPClient::reset is called while a connection to 'back-end' is
in progress.
In the logs, this is triggered by ProxyRTSPClient::continueAfterLivenessCommand.
In this case, the connection attempt will be reset by
RTSPClient::reset, but on the next call to RTSPClient::sendRequest,
fRequestsAwaitingConnection.isEmpty() will return false because the
queue is not empty.

Should the fRequestsAwaitingResponse queue be cleared by
RTSPClient::reset to prevent this?

Or, should the fRequestsAwaitingConnection queue be cleared in
RTSPClient::reset?

Or would it be correct to modify RTSPClient::sendRequest from:
if (!fRequestsAwaitingConnection.isEmpty()) {
To:
if (!fRequestsAwaitingConnection.isEmpty() && fInputSocketNum >= 0) {

/Erik
Post by Erik Montnemery
Thanks Ross,
Regarding issue 1)
You might be right, I'll try to reproduce while recording network traffic.
Regarding issue 2)
the state for the stream has timed out, and the proxy server then attempts to re-open a RTSP connection to the ‘back-end’ server. However, this appears to be hanging - again, apparently due to your ‘back-end’ server being broken.
The issue is triggered when there is network outage, and can be
reproduced by forcing the 'back-end' devices to repeatedly reconnect
to the WIFI.
After reproducing a few more times, I suspect the reestablishing of
network connection (sometimes) happens because there is a race
Example 1)
Sep 05 18:24:18 ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
Sep 05 18:24:18
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Sep 05 18:24:18
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Sep 05 18:24:18 Opening connection to 192.168.0.126, port 554...
Sep 05 18:24:18 ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264]: lost
connection to server ('errno': 115). Resetting...
<----- "Reset" triggered in
ProxyRTSPClient::continueAfterLivenessCommand while reconnect to the
'back-end' is in progress
Example 2)
(Note, I added some additional debug prints)
Sep 05 19:53:16 StreamState::reclaim()
Sep 05 19:53:16 ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
Sep 05 19:53:16
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Sep 05 19:53:16
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Sep 05 19:53:16 Opening connection to 192.168.0.126, port 554...
Sep 05 19:53:16 Setting up BackhroundHandling for socket 7
Sep 05 19:53:16 ProxyRTSPClient[rtsp://192.168.0.126/ch0_0.h264]: lost
connection to server ('errno': 115). Resetting...
<----- Again, "Reset" triggered in
ProxyRTSPClient::continueAfterLivenessCommand while reconnect to the
'back-end' is in progress
/Erik
Post by Erik Montnemery
Most of the time, the proxy server reconnects to the source after a
loss of connection to a source, but every now and then I observe one
In each case, the problem (from what I can tell) seems to be the fault of the ‘back-end’ server - i.e., it seems to be broken.
Post by Erik Montnemery
1) The proxyserver reconnects to the source, but no data frames are
forwarded to the clients.
If no data are forwarded to the (‘front-end’) clients, then that must mean that the ‘back-end’ server was not sending any data to the proxy server. If the ‘back-end’ server appears responsive in spite of this (i.e., the RTSP connection remains open, and the server continues responding to “OPTIONS” requests from the proxy server), then it must be broken in some way…
Post by Erik Montnemery
2) The proxy server does not reconnect to the source, and clients to
RTSP/1.0 404 File Not Found, Or In Incorrect Format
An example log of scenario 2) is pasted below
[…]
Post by Erik Montnemery
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Jul 26 20:25:44
ProxyServerMediaSubsession[(NULL),MPEG4-GENERIC]::~ProxyServerMediaSubsession()
Jul 26 20:25:44 Opening connection to 192.168.0.126, port 554…
In this case the state for the stream has timed out, and the proxy server then attempts to re-open a RTSP connection to the ‘back-end’ server. However, this appears to be hanging - again, apparently due to your ‘back-end’ server being broken.
I suggest just replacing your ‘back-end’ servers (i.e., web cams or whatever).
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
http://lists.live555.com/mailman/listinfo/live-devel
Ross Finlayson
2016-09-08 21:28:03 UTC
Permalink
Post by Erik Montnemery
Should the fRequestsAwaitingResponse queue be cleared by
RTSPClient::reset to prevent this?
Or, should the fRequestsAwaitingConnection queue be cleared in
RTSPClient::reset?
Actually, all of the client’s ‘request queues’ should be reset by “RTSPClient::reset()”.

I’ve now installed a new version (2016.09.08) of the “LIVE555 Streaming Media” code that fixes this. Thanks for tracking this down.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
Erik Montnemery
2016-09-12 18:44:58 UTC
Permalink
Post by Ross Finlayson
Actually, all of the client’s ‘request queues’ should be reset by “RTSPClient::reset()”.
I’ve now installed a new version (2016.09.08) of the “LIVE555 Streaming Media” code that fixes this.
Thanks a lot, Ross!

I did some extended testing by modifying one of the 'back-end' devices
to reconnect to the network every couple of minutes.
Test result: The proxy server succesfully reestablished connection to
the 'back-end' device >3500 times with no unexpected behavior.
Prior to the fix, reproduction rate of hung communication associated
with the 'back-end' device reconnection to the network was roughly
10%.
Post by Ross Finlayson
Post by Erik Montnemery
Should the fRequestsAwaitingResponse queue be cleared by
RTSPClient::reset to prevent this?
Or, should the fRequestsAwaitingConnection queue be cleared in
RTSPClient::reset?
Actually, all of the client’s ‘request queues’ should be reset by “RTSPClient::reset()”.
I’ve now installed a new version (2016.09.08) of the “LIVE555 Streaming Media” code that fixes this. Thanks for tracking this down.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
http://lists.live555.com/mailman/listinfo/live-devel
Erik Montnemery
2016-09-25 09:54:46 UTC
Permalink
Post by Ross Finlayson
Post by Erik Montnemery
1) The proxyserver reconnects to the source, but no data frames are
forwarded to the clients.
If no data are forwarded to the (‘front-end’) clients, then that must mean that the ‘back-end’ server was not sending any data to the proxy server. If the ‘back-end’ server appears responsive in spite of this (i.e., the RTSP connection remains open, and the server continues responding to “OPTIONS” requests from the proxy server), then it must be broken in some way…
I am now able to reproduce this issue with additional debug prints as
well as tcpdump of traffic between proxy and 'back-end' device.
You were absolutely right, Ross, the ‘back-end' server is not sending
and data to the proxy server.

It turns out that the sequence of SESSION identifiers is the same each
time the 'back end' server's RTSP deamon is restarted, presumably
because dome device unique constant such as serial number or MAC is
used as random seed for the session identifiers.

To reproduce the issue:
- Restart 'back end' server
- RTSP proxy will reconnect, and reuse the previous SESSION identifier
for PLAY / PAUSE, assuming the session is still valid
- 'Back end' server incorrectly accepts this, although the SESSION has
not been setup
Note: This would happen also without incorrect behavior of the 'back
end' server if another client has already connected and been assigned
the previous SESSION identifier.

To detect this issue and recover, I implemented the following:
Add an additional liveness check to ProxyRTSPClient, which
periodically queries lastPacketReceptionTime of the rtpSource of each
subsession to fOurServerMediaSession.fClientMediaSession.
If lastPacketReceptionTime is older than a certain threshold, the same
method as already used in a few other places in ProxyRTSPClient is
used to trigger a full reset, i.e. calling
continueAfterLivenessCommand with resultCode set to 1.
This seems to work well, and doesn't add a lot of extra complexity to
ProxyRTSPClient.

Is this a reasonable solution? Would you accept a patch implementing this?
Ross Finlayson
2016-09-25 15:32:38 UTC
Permalink
Post by Erik Montnemery
It turns out that the sequence of SESSION identifiers is the same each
time the 'back end' server's RTSP deamon is restarted, presumably
because dome device unique constant such as serial number or MAC is
used as random seed for the session identifiers.
- Restart 'back end' server
- RTSP proxy will reconnect, and reuse the previous SESSION identifier
for PLAY / PAUSE, assuming the session is still valid
- 'Back end' server incorrectly accepts this, although the SESSION has
not been setup
I don’t understand what you’re saying here. When the proxy server reconnects, it will do so by sending a whole new sequence of “DESCRIBE”, “SETUP”, and “PLAY” commands - i.e., to create a whole new RTSP session. It is the *back-end server* that selects the RTSP session identifier (in its response to the first “SETUP” command). If the back-end server happens to select the same session id that it used before, then that shouldn’t affect the proxy server, because by this time the proxy server will have forgotten all about the previous session (that happened to have used the same session id).

Please provide a complete listing of the RTSP protocol exchange (i.e., from running the proxy server with the -V option) that illustrates this alleged problem.
Post by Erik Montnemery
Add an additional liveness check to ProxyRTSPClient, which
periodically queries lastPacketReceptionTime of the rtpSource of each
subsession to fOurServerMediaSession.fClientMediaSession.
If lastPacketReceptionTime is older than a certain threshold, the same
method as already used in a few other places in ProxyRTSPClient is
used to trigger a full reset, i.e. calling
continueAfterLivenessCommand with resultCode set to 1.
This seems to work well, and doesn't add a lot of extra complexity to
ProxyRTSPClient.
Is this a reasonable solution?
No - because the 'back end’ server might have decided to stop sending RTP packets for a perfectly legitimate reason (e.g., in response to a “PAUSE” command, or because it just happened to decide to not stream video for a while).

The way that we (the proxy server) detect that the back end server has died is either by either (1) the RTSP (TCP) connection having died, or (2) the back-end server no longer responding to periodic “OPTIONS” commands. Both of which we check for.

If the ‘back-end’ server is still responding to the periodic “OPTIONS” commands, then it is still alive, as far as the proxy server is concerned. (If it’s not, then it’s broken, and needs to be fixed or replaced. Perhaps you can do so using the money that you’re saving on software :-)


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
Erik Montnemery
2016-09-25 19:14:34 UTC
Permalink
Post by Ross Finlayson
Post by Erik Montnemery
- Restart 'back end' server
- RTSP proxy will reconnect, and reuse the previous SESSION identifier
for PLAY / PAUSE, assuming the session is still valid
- 'Back end' server incorrectly accepts this, although the SESSION has
not been setup
I don’t understand what you’re saying here. When the proxy server reconnects, it will do so by sending a whole new sequence of “DESCRIBE”, “SETUP”, and “PLAY” commands - i.e., to create a whole new RTSP session. It is the *back-end server* that selects the RTSP session identifier (in its response to the first “SETUP” command). If the back-end server happens to select the same session id that it used before, then that shouldn’t affect the proxy server, because by this time the proxy server will have forgotten all about the previous session (that happened to have used the same session id).
Please provide a complete listing of the RTSP protocol exchange (i.e., from running the proxy server with the -V option) that illustrates this alleged problem.
The proxy server only creates a whole new RTSP session under certain
conditions, for example while waiting for an "OPTIONS" liveness reply.
If the RTSP TCP session is interrupted when there is no pending
request, the proxy server instead silently reconnects before sending
the next request and reuses the existing session.

This may cause problems, for example in this scenario:
- Proxy server has an RTSP session open towards the
'back-end' server, session identifier 'A'
- A 2nd client has an RTSP session open towards the 'back-end' server,
session identifier 'B'
- Back-end RTSP server restarts
- Proxy server and the 2nd clients both reconnect to the 'back-end' server
- The 2nd client connects first and opens a new session, which happens
to be assigned session identifier 'A'
- The proxy server reconnects, and keeps using the session identifier 'A'

A log of this scenario is further down in the mail.
Note: In my case, there is most likely no 2nd client, and the
'back-end' server is behaving incorrectly.
Post by Ross Finlayson
Post by Erik Montnemery
Add an additional liveness check to ProxyRTSPClient
...
Is this a reasonable solution?
No - because the 'back end’ server might have decided to stop sending RTP packets for a perfectly legitimate reason (e.g., in response to a “PAUSE” command,
The condition I use for the additional liveness check is that:
a) lastPacketReceptionTime is older than a certain threshold
- and -
b) fOurServerMediaSession.referenceCount() > 0, which it to my
understanding is if at least one client is requesting to stream (i.e.
is in state PLAYING)
Post by Ross Finlayson
or because it just happened to decide to not stream video for a while).
The RTSP proxy does not really use the range parameter, so I didn't
think that was a concern.

Sep 18 15:13:46 RTSPClient::sendRequest
Sep 18 15:13:46 RTSPClient::sendRequest - connectionIsPending:0
Sep 18 15:13:46 Sending request: OPTIONS
rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Sep 18 15:13:46 CSeq: 12883
Sep 18 15:13:46 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.09.08)
Sep 18 15:13:46 Session: 6B8B4567
Sep 18 15:13:46
Sep 18 15:13:46
Sep 18 15:13:46 Received 156 new bytes of response data.
Sep 18 15:13:46 Received a complete OPTIONS response:
Sep 18 15:13:46 RTSP/1.0 200 OK
Sep 18 15:13:46 CSeq: 12883
Sep 18 15:13:46 Date: Sun, Sep 18 2016 13:16:43 GMT
Sep 18 15:13:46 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Sep 18 15:13:46
Sep 18 15:13:46
<-- 'back end' device has restarted its RTSP server, and RTSP TCP
connection has been lost
Sep 18 15:14:16 RTSPClient::sendRequest
Sep 18 15:14:16 RTSPClient::sendRequest - we need to open a connection
Sep 18 15:14:16 Opening connection to 192.168.0.126, port 554...
Sep 18 15:14:16 Setting up BackgroundHandling for socket 9
Sep 18 15:14:16 RTSPClient::sendRequest - connectResult:0
Sep 18 15:14:16 RTSPClient::sendRequest - connectionIsPending:1
Sep 18 15:14:26 OnDemandServerMediaSubsession::sdpLines()
Sep 18 15:14:26 OnDemandServerMediaSubsession::sdpLines()
Sep 18 15:14:26 OnDemandServerMediaSubsession::sdpLines()
Sep 18 15:14:26 OnDemandServerMediaSubsession::sdpLines()
Sep 18 15:14:47 ...remote connection opened
Sep 18 15:14:47 RTSPClient::sendRequest
Sep 18 15:14:47 RTSPClient::sendRequest - connectionIsPending:0
Sep 18 15:14:47 Sending request: OPTIONS
rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Sep 18 15:14:47 CSeq: 12884
Sep 18 15:14:47 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.09.08)
Sep 18 15:14:47 Session: 6B8B4567
Sep 18 15:14:47
Sep 18 15:14:47
Sep 18 15:14:47 Received 156 new bytes of response data.
Sep 18 15:14:47 Received a complete OPTIONS response:
Sep 18 15:14:47 RTSP/1.0 200 OK
Sep 18 15:14:47 CSeq: 12884
Sep 18 15:14:47 Date: Thu, Jan 01 1970 00:00:40 GMT
Sep 18 15:14:47 Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY,
PAUSE, GET_PARAMETER, SET_PARAMETER
Sep 18 15:14:47
Sep 18 15:14:47
<-- Proxy client gives up because it has not received any data for a
while, RTSP Proxy sends PAUSE
Sep 18 15:14:48 StreamState::reclaim()
Sep 18 15:14:48
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::closeStreamSource()
Sep 18 15:14:48 RTSPClient::sendRequest
Sep 18 15:14:48 RTSPClient::sendRequest - connectionIsPending:0
Sep 18 15:14:48 Sending request: PAUSE rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Sep 18 15:14:48 CSeq: 12885
Sep 18 15:14:48 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.09.08)
Sep 18 15:14:48 Session: 6B8B4567
Sep 18 15:14:48
Sep 18 15:14:48
Sep 18 15:14:48 StreamState::reclaim()
Sep 18 15:14:48
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::closeStreamSource()
Sep 18 15:14:48 Received 88 new bytes of response data.
Sep 18 15:14:48 Received a complete PAUSE response:
Sep 18 15:14:48 RTSP/1.0 200 OK
Sep 18 15:14:48 CSeq: 12885
Sep 18 15:14:48 Date: Thu, Jan 01 1970 00:00:41 GMT
Sep 18 15:14:48 Session: 6B8B4567
Sep 18 15:14:48
Sep 18 15:14:48
<-- Proxy client reconnects and starts playing, RTSP Proxy sends PLAY.
No data is received by RTSP Proxy.
Sep 18 15:14:56 OnDemandServerMediaSubsession::sdpLines()
Sep 18 15:14:56 OnDemandServerMediaSubsession::sdpLines()
Sep 18 15:14:56 OnDemandServerMediaSubsession::sdpLines()
Sep 18 15:14:56 OnDemandServerMediaSubsession::sdpLines()
Sep 18 15:14:56
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewStreamSource(session
id 1042224728)
Sep 18 15:14:56 RTSPClient::sendRequest
Sep 18 15:14:56 RTSPClient::sendRequest - connectionIsPending:0
Sep 18 15:14:56 Sending request: PLAY rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
Sep 18 15:14:56 CSeq: 12886
Sep 18 15:14:56 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media
v2016.09.08)
Sep 18 15:14:56 Session: 6B8B4567
Sep 18 15:14:56
Sep 18 15:14:56
Sep 18 15:14:56
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,H264]::createNewRTPSink()
Sep 18 15:14:56
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewStreamSource(session
id 1042224728)
Sep 18 15:14:56
ProxyServerMediaSubsession[rtsp://192.168.0.126/ch0_0.h264/,MPEG4-GENERIC]::createNewRTPSink()
Sep 18 15:14:56 Received 68 new bytes of response data.
Sep 18 15:14:56 Received a complete PLAY response:
Sep 18 15:14:56 RTSP/1.0 200 OK
Sep 18 15:14:56 CSeq: 12886
Sep 18 15:14:56 Session: 6B8B4567
Sep 18 15:14:56 Range: npt=now-
Ross Finlayson
2016-09-25 23:12:56 UTC
Permalink
Post by Erik Montnemery
The proxy server only creates a whole new RTSP session under certain
conditions, for example while waiting for an "OPTIONS" liveness reply.
If the RTSP TCP session is interrupted when there is no pending
request, the proxy server instead silently reconnects before sending
the next request and reuses the existing session.
Yes, and this is entirely correct and appropriate. Note that RTSP ‘sessions’ are independent of RTSP TCP connections. It is allowable, for example, for a RTSP client to use a separate TCP connection for sending each RTSP command, and/or for a RTSP server to shut down a client’s TCP connection after handling and responding to each RTSP command. Note from RFC 2326: "Note that a session identifier identifies a RTSP session across transport sessions or connections.”
Post by Erik Montnemery
- Proxy server has an RTSP session open towards the
'back-end' server, session identifier 'A'
- A 2nd client has an RTSP session open towards the 'back-end' server,
session identifier 'B'
- Back-end RTSP server restarts
- Proxy server and the 2nd clients both reconnect to the 'back-end' server
- The 2nd client connects first and opens a new session, which happens
to be assigned session identifier 'A'
- The proxy server reconnects, and keeps using the session identifier ‘A'
This (the server restarting, and reusing the same session id(s) as before) is a bug in the server. Note again from RFC 2326:
Session hijacking:
Since there is no relation between a transport layer
connection and an RTSP session, it is possible for a malicious
client to issue requests with random session identifiers which
would affect unsuspecting clients. The server SHOULD use a
large, random and non-sequential session identifier to
minimize the possibility of this kind of attack.

So, please contact the manufacturer of the ‘back end’ server, notifying them of this bug in their server. (As always, I am willing to work with the manufacturer(s) of network cameras and other RTSP servers to help fix their products, but I’d need to hear from them directly.)
Post by Erik Montnemery
A log of this scenario is further down in the mail.
Note: In my case, there is most likely no 2nd client, and the
'back-end' server is behaving incorrectly.
Correct.
Post by Erik Montnemery
Post by Ross Finlayson
Post by Erik Montnemery
Add an additional liveness check to ProxyRTSPClient
...
Is this a reasonable solution?
No - because the 'back end’ server might have decided to stop sending RTP packets for a perfectly legitimate reason (e.g., in response to a “PAUSE” command,
a) lastPacketReceptionTime is older than a certain threshold
- and -
b) fOurServerMediaSession.referenceCount() > 0, which it to my
understanding is if at least one client is requesting to stream (i.e.
is in state PLAYING)
Post by Ross Finlayson
or because it just happened to decide to not stream video for a while).
The RTSP proxy does not really use the range parameter, so I didn't
think that was a concern.
I don’t see how the “range parameter” is relevant. As I noted earlier, it’s conceivable that the back-end server decides to stop sending RTP packets for a period of time, and I don’t want to reset/reconnect to the back-end server in this case, as long as the periodic “OPTIONS” commands (which, BTW, contain a session id) continue to be handled OK.

The manufacturer of your back-end server needs to fix their product.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
Erik Montnemery
2016-10-02 14:29:24 UTC
Permalink
Post by Erik Montnemery
Post by Erik Montnemery
1) The proxyserver reconnects to the source, but no data frames are
forwarded to the clients.
If no data are forwarded to the (‘front-end’) clients, then that must mean that the ‘back-end’ server was not sending any data to the proxy server. If the ‘back-end’ server appears responsive in spite of this (i.e., the RTSP connection remains open, and the server continues responding to “OPTIONS” requests from the proxy server), then it must be broken in some way

I am now able to reproduce this issue with additional debug prints as
well as tcpdump of traffic between proxy and 'back-end' device.
You were absolutely right, Ross, the ‘back-end' server is not sending
and data to the proxy server.
I've attached a patch to this mail which adds a new option [-D
<max-inter-packet-gap-time>] to the live555ProxyServer example
program.
The new functionality is based on the implementation of the same
option in openRTSP.
When the -D option is used, the proxy server will reset the connection
to a 'back end' server if at least one subsession *might* be in state
playing,
but no data has been received during max-inter-packet-gap-time seconds.

Note 1: As explained by Ross in this thread, this option does not make
sense for all streams. I use it for IP cameras where the camera should
be sending data at all times.
Note 2: As discussed in another thread, there’s no good way for the
proxy server code to know exactly what subsession(s) are and are not
currently streaming.
The patch is using the same logic as for PAUSE of substreams in
ProxyServerMediaSubsession::closeStreamSource(), which means
connection to 'back end'-server
might be reset although no client was playing.

I hope the patch is useful for some readers of this mailing list.
Continue reading on narkive:
Loading...