Hi,
I can give some informations about LocationFree system (LF-B1 base, EU version):
- The PSP LocationFree Player (2.70) search for a base, sending UDP broadcast packets. When the base is found, you must configure a few things and the PSP generates a (binary) file on the Memory Stick. Until this file exists on the MS, you can directly enter the LocationFree Player and setup the whole thing, even if you're not connected to the base yet. I will put a link to this file here.
- All the transport of the stream is done with TCP ! The LocationFree protocol is a mix of HTTP and tunneled RTSP (port 5021, by default).
- Here is the whole TCP stream (both sides) when I connect the PSP to the base (I've removed my IP address and the MAC adress of the PSP ... see the log):
Code: Select all
GET /netav/message0 HTTP/1.1
User-Agent: LFX HTTP Tunnel Client 1; model=LF-PSP, modeltype=6, generation=3, support=1/2/3
X-SessionCookie: 267
Pragma: no-cache
Cache-control: no-cache, no-store
Host: 82.xxx.xxx.xxx
Connection: Keep-Alive
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="NetAV", nonce="2d1b98bdb07a745d4253284974dacfe6", algorithm=MD5, domain="/netav/", qop="auth",
Pragma: no-cache
Cache-control: no-cache, no-store
GET /netav/message0 HTTP/1.1
User-Agent: LFX HTTP Tunnel Client 1; model=LF-PSP, modeltype=6, generation=3, support=1/2/3
X-SessionCookie: 267
Pragma: no-cache
Cache-control: no-cache, no-store
Host: 82.xxx.xxx.xxx
Connection: Keep-Alive
Authorization: Digest username="HERE_THE_PSP_MAC_ADDR", realm="NetAV", nonce="2d1b98bdb07a745d4253284974dacfe6", uri="/netav/message", response="7093e415f927519bb5736d87f020044a", algorithm=MD5, cnonce="11a7cc6800971eee6d1b23c75bdd7ed4", qop="auth", nc=00000001
HTTP/1.1 200 OK
Authentication-Info: qop="auth", rspauth="none", cnonce="11a7cc6800971eee6d1b23c75bdd7ed4", nc=00000001
Pragma: no-cache
Cache-control: no-cache, no-store
Server: model=LF-B1EU, modeltype=3, generation=3, support=1/2/3
GET /connect HTTP/1.1
User-Agent: LFX HTTP Tunnel Client 1; model=LF-PSP, modeltype=6, generation=3, support=1/2/3
X-SessionCookie: 267
Pragma: no-cache
Cache-control: no-cache, no-store
Host: 82.xxx.xxx.xxx
Connection: Keep-Alive
HTTP/1.0 200 OK
Server: netAV
Connection: close
Date: Thu, 10 Jul 1980 10:30:00 GMT
Cache-Control: no-store
Pragma: no-cache
Content-Type: application/x-rtsp-tunnelled
RTSP/1.0 200 OK
Server: Havana/1.25
CSeq: 1
Content-Type: application/sdp
Content-Base: rtsp://82.xxx.xxx.xxx:5021/DSP/vbr=500000.vmbr=850000.vfr=25.vw=352.vh=288.vfl=0x119.abr=48000.ambr=48000.asr=24000.afl=0x116.vtype=3./
Content-Length: 581
v=0
o=StreamingServer 751639683333 1 IN IP4 10.0.0.1
s=/DSP/vbr=500000.vmbr=850000.vfr=25.vw=352.vh=288.vfl=0x119.abr=48000.ambr=48000.asr=24000.afl=0x116.vtype=3.
c=IN IP4 0.0.0.0
i=DSP session streamed by "netAV"
t=0 0
a=tool:netAV
m=video 0 RTP/AVP 96
a=rtpmap:96 MP4V-ES/90000
a=fmtp:96 config=000001200088400670c2c1090510
a=control:trackID=2
m=audio 0 RTP/AVP 97
a=rtpmap:97 mpeg4-generic/24000/2
a=fmtp:97 profile-level-id=1; bitrate=48000; cpresent=0; object=2; mode=AAC-hbr; config=1310; SizeLength=13; IndexLength=3; IndexDeltaLength=3;
a=control:trackID=1
RTSP/1.0 200 OK
Server: Havana/1.25
CSeq: 2
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Session: 1
RTSP/1.0 200 OK
Server: Havana/1.25
CSeq: 3
Transport: RTP/AVP/TCP;unicast;interleaved=2-3
Session: 1
RTSP/1.0 200 OK
Server: Havana/1.25
CSeq: 4
Session: 1
I'm trying to write a "fake" base using a small program, but the PSP seems to wait for something ... Perhaps I must respect packet sizes from the real base ...
More to come.