int RTSPSession::HandlePLAYRequest(RTSPPacket &requestpkt, RTSPPacket &responsepkt)
{
    if (RTSP::RTSP_READY != rtspStatus_ )
    {
        responsepkt.SetStatusCode("455");
        return -1;
    }
    rtspStatus_ = RTSP::RTSP_PLAYING;
    string requestURI = requestpkt.GetRequestURI();
    ServerMediaSession *mediaSesion = server_->FindMediaSessionByStreamName(streamName_);
    if ( !mediaSesion )
    {
        RTSPDEBUG("[Warning] StreamName: %s Not Found.", streamName_.c_str());
        responsepkt.SetStatusCode("404");
        return -1;
    }
    string rtpinfo = mediaSesion->GetRTPInfo( "rtsp://" + requestURI );
    // "Session: %d",
    responsepkt.AddAHeaderLine(RTSP::HeaderField::Session, Utility::ToString(this->GetSessionID()));

    // RTPInfo
    responsepkt.AddAHeaderLine(RTSP::HeaderField::RTP_Info, rtpinfo);

    // Range
    responsepkt.AddAHeaderLine(RTSP::HeaderField::Range, responsepkt.GetHeaderLine(RTSP::HeaderField::Range));

    mediaSesion->StartStream();
    responsepkt.SetStatusCode("200");
    return 0;
}