We have inserted our own RTSP relay in the middle of the RTSP signaling because unfortunately while NAT forwards packets just fine, the unfortunate part is the smarter phones (blackjack, blackberry, etc) actually look at the SDP response for the signaling, whereas phones like a simple Samsung I737 doesnt look at the control signaling in the SDP. VLC inserts the local Unroutable IP address space in the SDP of the DESCRIBE response, and then the phones can not reach the server because they attempt to connect to the LOCAL IP of say 192.168.2.205 for the SETUP/PLAY control. (as you see the 127.0.0.1 and the 192.168.2.205 IP's used in the control= segments of the SDP)
So since some phones parse the actual SDP for this data, we have a relay, which in essence re-writes the SDP and messaging between CLIENT and VLC.
SDP returned by VLC is:
Code: Select all
RTSP/1.0 200 OK
Server: vlc 1.0.1
Date: Thu, 10 Sep 2009 18:33:33 GMT
Content-Type: application/sdp
Content-Base: rtsp://192.168.2.205:8081/mysdp.sdp
Content-Length: 627
Cache-Control: no-cache
Cseq: 0
v=0
o=- 14867443389876337316 14867443389876337316 IN IP4 sml-workstation
s=Unnamed
i=N/A
c=IN IP4 127.0.0.1
t=0 0
a=tool:vlc 1.0.1
a=recvonly
a=type:broadcast
a=charset:UTF-8
a=control:rtsp://192.168.2.205:8081/mysdp.sdp
m=audio 8084 RTP/AVP 96
b=AS:48
b=RR:0
a=rtpmap:96 mpeg4-generic/48000
a=fmtp:96 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=1188; SizeLength=13; IndexLength=3; IndexDeltaLength=3; Profile=1;
a=control:rtsp://192.168.2.205:8081/mysdp.sdp/trackID=0
m=video 8082 RTP/AVP 97
b=AS:384
b=RR:0
a=rtpmap:97 H263-1998/90000
a=control:rtsp://192.168.2.205:8081/mysdp.sdp/trackID=1
Now when werun this thru the RELAY, we insert a "client_ip=x.x.x.x" in the transport line, so VLC will stream to the client and not our relay. But VLC rejects the message with unsupported transport. Any insight?
Here is the request and response, once run thru our RTSP relay:
SETUP rtsp://192.168.2.205:8081/mysdp.sdp/trackID=0 RTSP/1.0
CSeq: 1
Transport: RTP/AVP;unicast;client_ip=32.160.195.209;client_port=8084-8085
Blocksize: 1400
User-Network: Qualcomm
DeviceInfo: MSM6XX0
Supported: method.eos, com.pv.server_playlist
User-Agent: SAMSUNG-SGH-A737/UCHD2 SHP/VPP/R5 NetFront/3.4 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1
RTSP/1.0 461 Unsupported transport
Server: vlc 1.0.1
Date: Thu, 10 Sep 2009 18:33:35 GMT
Content-Length: 0
Cache-Control: no-cache
Cseq: 1
Shawn