diff --git a/src/channel/metadata/Metadata.java b/src/channel/metadata/Metadata.java index ca2aacd4..915f3288 100644 --- a/src/channel/metadata/Metadata.java +++ b/src/channel/metadata/Metadata.java @@ -545,29 +545,29 @@ public class Metadata */ private void determineRecordable() { - mRecordable = false; + mRecordable = true; - if(mPrimaryAddressTo.hasAlias() && mPrimaryAddressTo.getAlias().isRecordable()) + if(mPrimaryAddressTo.hasAlias() && !mPrimaryAddressTo.getAlias().isRecordable()) { - mRecordable = true; + mRecordable = false; return; } - if(mPrimaryAddressFrom.hasAlias() && mPrimaryAddressFrom.getAlias().isRecordable()) + if(mPrimaryAddressFrom.hasAlias() && !mPrimaryAddressFrom.getAlias().isRecordable()) { - mRecordable = true; + mRecordable = false; return; } - if(mSecondaryAddressTo.hasAlias() && mSecondaryAddressTo.getAlias().isRecordable()) + if(mSecondaryAddressTo.hasAlias() && !mSecondaryAddressTo.getAlias().isRecordable()) { - mRecordable = true; + mRecordable = false; return; } - if(mSecondaryAddressFrom.hasAlias() && mSecondaryAddressFrom.getAlias().isRecordable()) + if(mSecondaryAddressFrom.hasAlias() && !mSecondaryAddressFrom.getAlias().isRecordable()) { - mRecordable = true; + mRecordable = false; return; } } diff --git a/src/controller/channel/ChannelProcessingManager.java b/src/controller/channel/ChannelProcessingManager.java index 58e06b9b..1f12ac7a 100644 --- a/src/controller/channel/ChannelProcessingManager.java +++ b/src/controller/channel/ChannelProcessingManager.java @@ -217,11 +217,14 @@ public class ChannelProcessingManager implements ChannelEventListener MessageActivityModel messageModel = new MessageActivityModel(messageFilter); processingChain.setMessageActivityModel(messageModel); - //Override recordable flag in metadata if user has specified audio recording - if(channel.getRecordConfiguration() != null && - channel.getRecordConfiguration().getRecorders().contains(RecorderType.AUDIO)) + //Set the recordable flag to false in metadata if we don't have a record configuration, or if the user + //has not specified audio recording. Note: the metadata class sets recordable to true by default if no + //setting has been specified. This flag is subsequently turned off if any of the primary or secondary + //identifiers are designated as non-recordable. + if(channel.getRecordConfiguration() == null || + !channel.getRecordConfiguration().getRecorders().contains(RecorderType.AUDIO)) { - processingChain.getChannelState().getMutableMetadata().setRecordable(true); + processingChain.getChannelState().getMutableMetadata().setRecordable(false); } //Inject channel metadata that will be inserted into audio packets for recorder manager and streaming