Index: ../../sources/applications/flvplayback/include/rtmpappprotocolhandler.h
===================================================================
--- ../../sources/applications/flvplayback/include/rtmpappprotocolhandler.h	(revision 270)
+++ ../../sources/applications/flvplayback/include/rtmpappprotocolhandler.h	(working copy)
@@ -37,6 +37,7 @@
 	private:
 		bool ProcessGetAvailableFlvs(BaseRTMPProtocol *pFrom, Variant &request);
 		bool ProcessInsertMetadata(BaseRTMPProtocol *pFrom, Variant &request);
+		bool ProcessGetAllActiveConnections(BaseRTMPProtocol *pFrom, Variant &request);
 	};
 }
 #endif	/* _RTMPAPPPROTOCOLHANDLER_H */
Index: ../../sources/applications/flvplayback/src/rtmpappprotocolhandler.cpp
===================================================================
--- ../../sources/applications/flvplayback/src/rtmpappprotocolhandler.cpp	(revision 270)
+++ ../../sources/applications/flvplayback/src/rtmpappprotocolhandler.cpp	(working copy)
@@ -25,6 +25,7 @@
 #include "application/baseclientapplication.h"
 #include "streaming/baseinnetstream.h"
 #include "streaming/streamstypes.h"
+#include "protocols/protocolmanager.h"
 using namespace app_flvplayback;
 
 RTMPAppProtocolHandler::RTMPAppProtocolHandler(Variant &configuration)
@@ -43,6 +44,8 @@
 		return ProcessGetAvailableFlvs(pFrom, request);
 	} else if (functionName == "insertMetadata") {
 		return ProcessInsertMetadata(pFrom, request);
+	} else if (functionName == "getAllActiveConnections") {
+		return ProcessGetAllActiveConnections(pFrom, request);
 	} else {
 		return BaseRTMPAppProtocolHandler::ProcessInvokeGeneric(pFrom, request);
 	}
@@ -149,5 +152,56 @@
 	//    return pInboundStream->SendStreamMessage("onMetaData", params);
 	NYIR;
 }
+
+bool RTMPAppProtocolHandler::ProcessGetAllActiveConnections(
+		BaseRTMPProtocol *pFrom, Variant &request) {
+	//1. Prepare the payload in the final response
+	Variant connectionsArray;
+
+	//2. Get all protocols
+	map<uint32_t, BaseProtocol *> allProtocols = ProtocolManager::GetActiveProtocols();
+
+	//2. Cycle over the protocols and select only those ones
+	//who belong to this app. You could return all of them just fine
+
+	FOR_MAP(allProtocols, uint32_t, BaseProtocol *, i) {
+		//3. Is this a protocol beonging to this app?
+		if ((MAP_VAL(i)->GetApplication() == NULL)
+				|| (MAP_VAL(i)->GetApplication()->GetId() != GetApplication()->GetId())) {
+			//4. skipping this protocol, because is not from this app
+			continue;
+		}
+		//5. Ok, this is our protocol. get its info
+		Variant info;
+		MAP_VAL(i)->GetStackStats(info);
+
+		//6. Save that info in the connectionsArray
+		connectionsArray.PushToArray(info);
+	}
+
+	//7.Prepare the final response message
+	//First element in the response must be a NULL value
+	//immediatly followed by the collection of parameters.
+	//This is how flash player expects results: having the first param as NULL
+	//In our case, the actual payload will be a single array value containing
+	//all the connection info. The hierarchy would be something like
+	//
+	//	resultParams
+	//		null_value (the one needed by adobe)
+	//		array_value
+	//			connection_info_1
+	//			connection_info_2
+	//			...
+	//			connection_info_n
+	Variant allParams;
+	allParams.PushToArray(Variant()); //the first null value
+	allParams.PushToArray(connectionsArray); //our array of connections
+
+	//8. generate the complete RTMP response message
+	Variant response = GenericMessageFactory::GetInvokeResult(request, allParams);
+
+	//9. Send it
+	return SendRTMPMessage(pFrom, response);
+}
 #endif /* HAS_PROTOCOL_RTMP */
 
Index: ../../sources/applications/flvplayback/flex/src/com/rtmpd/flvplayback.mxml
===================================================================
--- ../../sources/applications/flvplayback/flex/src/com/rtmpd/flvplayback.mxml	(revision 270)
+++ ../../sources/applications/flvplayback/flex/src/com/rtmpd/flvplayback.mxml	(working copy)
@@ -7,6 +7,9 @@
 			import mx.effects.easing.Back;
 			import mx.managers.PopUpManager;
 			import mx.utils.ObjectUtil;
+
+
+
 			private var _connection:NetConnection;
 			[Bindable]
 			private var _availableFlvs:Array;
@@ -53,9 +56,14 @@
 				FireEvents();
 				if(IsConnected){
 					_connection.call("getAvailableFlvs",null);
+					_connection.call("getAllActiveConnections",new Responder(onAvailableConnections));
 				}
 			}
 			
+			public function onAvailableConnections(connections:Array):void{
+				Alert.show(ObjectUtil.toString(connections));	
+			}
+			
 			private function ConnectDisconnect():void{
 				if(IsConnected){
 					_connection.close();
