private void sendMessage(final RawData message, final DTLSSession session) {
try {
Record record = new Record(
ContentType.APPLICATION_DATA,
session.getWriteEpoch(),
session.getSequenceNumber(),
new ApplicationMessage(message.getBytes(), message.getInetSocketAddress()),
session);
if (message.getMessageCallback() != null) {
CorrelationContext ctx = new DtlsCorrelationContext(
session.getSessionIdentifier().toString(),
String.valueOf(session.getWriteEpoch()),
session.getWriteStateCipher());
message.getMessageCallback().onContextEstablished(ctx);
}
sendRecord(record);
} catch (GeneralSecurityException e) {
LOGGER.log(Level.FINE, String.format("Cannot send APPLICATION record to peer [%s]", message.getInetSocketAddress()), e);
}
}