Heat olive oil in large pot. Brown whole fish on both sides in batches. Remove and set aside.
In the same pot, sauté onion, fennel, and garlic 10 minutes. Add tomato paste, cook 3 minutes.
Return fish to pot. Add tomatoes, wine, water, saffron, orange zest, fennel seeds, and bouquet garni.
Bring to boil, then simmer vigorously 30 minutes, breaking up fish as it cooks.
Remove bouquet garni and orange zest. Blend soup in batches.
Pass through a fine food mill or coarse sieve — press hard to extract maximum flavor. Discard bones.
Reheat and adjust seasoning with cayenne, salt, and pepper. Serve with rouille and grated Gruyère.