public ConversationExt startConversation(Object conversationID) {
if (conversationID == null) {
conversationID = UUID.randomUUID().toString();
}
ConversationExt conversation = getConversation(conversationID);
if (conversation != null && conversation.getState() != ConversationState.ENDED) {
throw new IllegalStateException(conversation + " already exists.");
}
conversation = new ExtendedConversationImpl(this, conversationID, ConversationState.STARTED);
conversations.put(conversationID, conversation);