diff --git a/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/Application.java b/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/Application.java index ab57b7e83dc1d0913ab85094de1e4b160e777f83..b0c55b0e1b94ee04d16d3c8d129e3962d5532f9a 100755 --- a/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/Application.java +++ b/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/Application.java @@ -32,6 +32,7 @@ import org.red5.server.api.IScope; import org.red5.server.api.Red5; import org.red5.server.api.service.IServiceCapableConnection; import org.red5.server.api.stream.IBroadcastStream; +import org.red5.server.stream.ClientBroadcastStream; public class Application extends MultiThreadedApplicationAdapter { private static Logger log = Red5LoggerFactory.getLogger(Application.class, "sip"); @@ -104,9 +105,27 @@ public class Application extends MultiThreadedApplicationAdapter { super.streamPublishStart(stream); String clientId = conn.getClient().getId(); sipPeerManager.startTalkStream(peerId, clientId, stream, conn.getScope()); +// recordStream(stream); } } + /** + * A hook to record a sample stream. A file is written in webapps/sip/streams/ + * @param stream + */ + private void recordStream(IBroadcastStream stream) { + IConnection conn = Red5.getConnectionLocal(); + String streamName = stream.getPublishedName(); + + try { + ClientBroadcastStream cstream = (ClientBroadcastStream) this.getBroadcastStream(conn.getScope(), stream.getPublishedName() ); + cstream.saveAs(streamName, false); + } catch(Exception e) { + System.out.println("ERROR while recording stream " + e.getMessage()); + e.printStackTrace(); + } + } + @Override public void streamBroadcastClose(IBroadcastStream stream) { System.out.println("streamBroadcastClose: " + stream.getPublishedName());