int RTSPSession::HandleDESCRIBERequest(RTSPPacket &requestpkt, RTSPPacket &responsepkt)
{

    string requestURI = requestpkt.GetRequestURI();
    responsepkt.AddAHeaderLine(RTSP::HeaderField::Content_Base, "rtsp://" + requestURI);
    responsepkt.AddAHeaderLine(RTSP::HeaderField::Content_Type, requestpkt.GetHeaderLine(RTSP::HeaderField::Accept));
    streamName_ = requestURI.substr(requestURI.find('/')+1, requestURI.length());
    ServerMediaSession *mediaSesion = server_->FindMediaSessionByStreamName(streamName_);
    if (NULL == mediaSesion)
    {
        RTSPDEBUG("[Warning] StreamName: %s Not Found.", streamName_.c_str());
        responsepkt.SetStatusCode("404");
        return -1;
    }
    string sdp = mediaSesion->GenerateSDPDescription();
    int length = sdp.length();
    responsepkt.AddAHeaderLine(RTSP::HeaderField::Content_Length, Utility::ToString(length));
    responsepkt.SetContent(sdp);

    responsepkt.SetStatusCode("200");
    return 0;
}