something about 'X-User-Agent: redsonic' HTTP header:
don't add this header if possible, during work for the P2P TV with dsm320, I find out that:
if this header is added in the HTTP header, DSM320 will request media information in small chunks '16383' bytes per http request, without this header, after serveral initial http request, both server and dsm320 will keep using the same socket, keep the same single socket open for transferring gigabytes of data, it is like millions times more efficient.
IIRC, not having this in made playback of video suffer stuttering on the 320, unless it was one of the other headers, but I'm positive that until I had this header video playback was crap.
Well, the redsonic header is indeed related to keep-alive support; however libupnp does not support keep-alive. Nevertheless, enabling this header makes sure that .AVI files are played back smoothly on the DSM320 from MediaTomb. Since you tried streaming from Apache, things may be different - keep-alive is available there. But well... the DSM320 firmware is full of mysteries :>