diff --git a/trunk/src/app/srs_app_rtc_server.cpp b/trunk/src/app/srs_app_rtc_server.cpp index 7f5d59053..e61d44b02 100644 --- a/trunk/src/app/srs_app_rtc_server.cpp +++ b/trunk/src/app/srs_app_rtc_server.cpp @@ -331,6 +331,8 @@ srs_error_t SrsRtcServer::do_create_session( { srs_error_t err = srs_success; + SrsContextId cid = _srs_context->get_id(); + // first add publisher/player for negotiate sdp media info if (publish) { if ((err = session->add_publisher(req, remote_sdp, local_sdp)) != srs_success) { @@ -390,7 +392,6 @@ srs_error_t SrsRtcServer::do_create_session( session->set_local_sdp(local_sdp); session->set_state(WAITING_STUN); - SrsContextId cid = _srs_context->get_id(); // Before session initialize, we must setup the local SDP. if ((err = session->initialize(source, req, publish, username, cid)) != srs_success) { return srs_error_wrap(err, "init"); @@ -444,6 +445,8 @@ srs_error_t SrsRtcServer::setup_session2(SrsRtcConnection* session, SrsRequest* { srs_error_t err = srs_success; + SrsContextId cid = _srs_context->get_id(); + if (session->state() != WAITING_ANSWER) { return err; } @@ -456,7 +459,6 @@ srs_error_t SrsRtcServer::setup_session2(SrsRtcConnection* session, SrsRequest* // TODO: FIXME: Collision detect. string username = session->get_local_sdp()->get_ice_ufrag() + ":" + remote_sdp.get_ice_ufrag(); - SrsContextId cid = _srs_context->get_id(); if ((err = session->initialize(source, req, false, username, cid)) != srs_success) { return srs_error_wrap(err, "init"); }