diff --git a/trunk/src/app/srs_app_rtc_server.cpp b/trunk/src/app/srs_app_rtc_server.cpp
index 1dcc6c43d..f97f7b15f 100644
--- a/trunk/src/app/srs_app_rtc_server.cpp
+++ b/trunk/src/app/srs_app_rtc_server.cpp
@@ -418,7 +418,7 @@ srs_error_t SrsRtcServer::create_session(
     }
 
     // TODO: FIXME: Refine the API for stream status manage.
-    if (publish && !source->can_publish(false)) {
+    if (publish && !source->can_publish()) {
         return srs_error_new(ERROR_RTC_SOURCE_BUSY, "stream %s busy", req->get_stream_url().c_str());
     }
 
diff --git a/trunk/src/app/srs_app_rtc_source.cpp b/trunk/src/app/srs_app_rtc_source.cpp
index 196318998..4340961b8 100644
--- a/trunk/src/app/srs_app_rtc_source.cpp
+++ b/trunk/src/app/srs_app_rtc_source.cpp
@@ -406,7 +406,7 @@ void SrsRtcStream::on_consumer_destroy(SrsRtcConsumer* consumer)
     }
 }
 
-bool SrsRtcStream::can_publish(bool is_edge)
+bool SrsRtcStream::can_publish()
 {
     return _can_publish;
 }
diff --git a/trunk/src/app/srs_app_rtc_source.hpp b/trunk/src/app/srs_app_rtc_source.hpp
index 9fb7cca92..a36c1b344 100644
--- a/trunk/src/app/srs_app_rtc_source.hpp
+++ b/trunk/src/app/srs_app_rtc_source.hpp
@@ -178,8 +178,8 @@ public:
     // @param dg, whether dumps the gop cache.
     virtual srs_error_t consumer_dumps(SrsRtcConsumer* consumer, bool ds = true, bool dm = true, bool dg = true);
     virtual void on_consumer_destroy(SrsRtcConsumer* consumer);
-    // TODO: FIXME: Remove the param is_edge.
-    virtual bool can_publish(bool is_edge);
+    // Whether we can publish stream to the source, return false if it exists.
+    virtual bool can_publish();
     // When start publish stream.
     virtual srs_error_t on_publish();
     // When stop publish stream.