there is no need to implement LSTM by yourselt. In your forward() of CLSTM_cell, just input the output of conv to nn.LSTM. Like the code below:
        x = self.CNN(x)
        x = x.view(x.size()[0], 512, -1)
        # (batch, input_size, seq_len) -> (batch, seq_len, input_size)
        x = x.transpose(1, 2)
        # (batch, seq_len, input_size) -> (seq_len, batch, input_size)
        x = x.transpose(0, 1).contiguous()
        x, _ = self.LSTM1(x)

You should define your self.LSTM1 in your init, like
self.BiLSTM1 = nn.LSTM(input_size=nIn, hidden_size=nHidden, num_layers=1, dropout=0)

Also refer to the definition of nn.LSTM for how to use.