Place the oil in a medium stock pot over low heat. Sweat the onions and shallots until they are soft, about 5 minutes. Add the leek, celery, and mushrooms and sweat for 5 minutes more. Be very careful not to caramelize the vegetables as this will discolor the final stock.
Add the fish frames and heads, parsley stems, bay leaf, and thyme. Cook gently over low heat until the fish frames turn opaque.
Add the wine, turn the heat up to medium-high, and bring to a gentle boil. Reduce the wine by half.
Add the water and stir well. Add the peppercorns and mushrooms and bring to a boil. Skim the surface of any impurities and fat and reduce heat to a gentle simmer. Allow the fumet to simmer for 30 minutes. Turn off the heat and allow to steep for an additional 10 minutes.
Strain the finished fumet through a fine mesh sieve or a strainer lined with cheese cloth. Allow the fumet to cool completely before covering and refrigerating or freezing. Fumet can be made up to a month ahead of time and stored in the freezer.